欢迎来到福编程网,本站提供各种互联网专业知识!
您的位置:网站首页 > 操作系统 > LINUX

用systemd-analyze分析Linux系统的启动性能

发布时间:2016-08-29 作者:佚名 来源:xiaoli110的BLOG
这篇文章主要介绍了用systemd-analyze分析Linux系统的启动性能,systemd-analyze能够实现图形化的结果展示,非常强大,需要的朋友可以参考下

systemd-analyze是一个分析启动性能的工具,用于分析启动时服务时间消耗。默认显示启动是内核和用户空间的消耗时间:

复制代码代码如下: [root@localhost~]#systemd-analyze

Startupfinishedin818ms(kernel)+6.240s(initrd)+32.979s(userspace)=40.038s

和使用systemd-analyzetime命令的效果一样。

(1)查看详细的每个服务消耗的启动时间

通过systemd-analyzeblame命令查看详细的每个服务消耗的启动时间:

复制代码代码如下:

[root@localhost~]#systemd-analyzeblame

30.852siscsi.service

16.994skdump.service

10.871sboot.mount

...

103mssystemd-sysctl.service

101msdatapool.mount

(2)查看严重消耗时间的服务树状表

systemd-analyzecritical-chain命令打印严重消耗时间的服务树状表,按照启动消耗的时间进行排序,时间消耗越多,越排到前面。@之后是服务激活或者启动的时间,+号之后是服务启动消耗的时间。个人理解@是从系统引导到服务启动起来的时间,是一个相对时间消耗,+是服务启动消耗的时间,是一个绝对时间消耗。

复制代码代码如下:

[root@localhost~]#systemd-analyzecritical-chain

Thetimeaftertheunitisactiveorstartedisprintedafterthe"@"character.

Thetimetheunittakestostartisprintedafterthe"+"character.

multi-user.target@32.976s

└─kdump.service@15.981s+16.994s

└─network.target@15.980s

└─NetworkManager.service@15.069s+54ms

└─firewalld.service@14.532s+535ms

└─basic.target@14.532s

└─sockets.target@14.532s

└─dbus.socket@14.532s

└─sysinit.target@14.527s

└─systemd-update-utmp.service@14.524s+2ms

└─systemd-tmpfiles-setup.service@14.456s+67ms

└─local-fs.target@14.447s

└─boot.mount@3.575s+10.871s

└─systemd-fsck@dev-disk-byx2duuid-8c77568bx2d7e51x2d4e32x2dbbdfx2ddc12ff737bbf.service@3.348s+226ms

└─systemd-fsck-root.service@1.237s+152ms

└─systemd-readahead-replay.service@1.073s+25ms

(3)打印分析图及其他命令

systemd-analyzeplot打印一个svg格式的服务消耗时间表,通过浏览器可以以图形的方式展示,非常直观:

复制代码代码如下:

[root@localhost~]#systemd-analyzeplot>plot.svg

201571151631599.jpg (871×614)

其他参数:

systemd-analyzedot用分隔符产生当前服务

systemd-analyzedump以友好方式显示当前服务状态

6systemd文件类型及存放位置

systemd配置文件被称为unit单元,根据类型不同,以不同的扩展名结尾。

.service系统服务;

.target一组系统服务;

.automount自动挂载点;

.device能被内核识别的设备;

.mount挂载点;

.path文件系统的文件或者目录;

.scope外部创建的进程;

.slice一组分层次管理的系统进程;

.snapshot系统服务状态管理;

.socket进程间通讯套接字;

.swap定义swap文件或者设备;

.timer定义定时器。

相关推荐