欢迎光临
我们一直在努力

systemd-analyze – 在Linux中查找系统启动性能统计信息

您是否在使用systemd系统和服务管理器,并且您的Linux系统需要较长时间才能启动,或者您希望查看系统启动性能的报告? 如果是的话,你已经登陆了正确的地方。

在本文中,我们将向您展示如何使用systemd-analyze来分析Linux系统启动性能统计信息, systemd是systemd中用于系统管理的众多实用程序之一。

另请参阅如何在远程Linux服务器上控制系统服务

要获得系统启动时间的概述,我们可以运行systemd-analyze命令而不带任何参数,如下所示。 它将列出每个服务启动需要多长时间的信息,其中包括启动时内核,initrd和用户空间占用的时间。

# systemd-analyzeStartup finished in 884ms (kernel) + 3.861s (initrd) + 48.356s (userspace) = 53.102s

如果要查看所有正在运行的单位的列表,按其初始化时间排序(最高时间位于最前面),blame子命令用于此目的。 运行后面的命令后,使用[Enter]查看列表中的更多服务,然后q退出。

# systemd-analyze blame 
找出每个单位的时间开始
         16.159s mariadb.service12.178s libvirtd.service10.298s tuned.service9.836s postfix.service8.704s lsws.service7.352s lscpd.service4.988s [email protected]4.779s NetworkManager-wait-online.service4.577s lvm2-monitor.service4.439s ModemManager.service4.413s polkit.service4.280s dev-sda1.device4.225s systemd-udev-settle.service3.957s firewalld.service3.227s rhel-dmesg.service3.221s abrt-ccpp.service3.142s rsyslog.service3.053s avahi-daemon.service3.042s pure-ftpd.service2.249s gssproxy.service2.212s NetworkManager.service1.889s proc-fs-nfsd.mount1.780s systemd-tmpfiles-setup-dev.service1.451s sshd.service1.267s rhel-readonly.service1.035s sysstat.service1.001s rpc-statd-notify.service910ms systemd-logind.service739ms kdump.service738ms network.service...

从上面的输出中可以看出,每台设备都是基于所花费的时间进行排序的,您可以简单地找出哪些服务在启动和分析问题时花费的时间较长。

接下来,我们还可以使用critical-chain子命令查看默认目标或指定单元列表的时间关键链的树,如图所示。

# systemd-analyze critical-chain  
为默认目标打印时间关键链
The time after the unit is active or started is printed after the "@" character.The time the unit takes to start is printed after the "+" character.multi-user.target @48.342s└─mariadb.service @31.560s +16.159s└─network.target @31.558s└─network.service @30.819s +738ms└─NetworkManager-wait-online.service @26.035s +4.779s└─NetworkManager.service @23.821s +2.212s└─network-pre.target @23.821s└─firewalld.service @19.863s +3.957s└─polkit.service @15.381s +4.413s└─basic.target @12.271s└─sockets.target @12.271s└─virtlockd.socket @12.270s└─sysinit.target @12.251s└─systemd-update-utmp.service @12.196s +54ms└─auditd.service @11.705s +486ms└─systemd-tmpfiles-setup.service @11.609s +93ms└─rhel-import-state.service @11.397s +211ms└─local-fs.target @11.363s└─run-user-0.mount @46.910s└─local-fs-pre.target @10.575s└─lvm2-monitor.service @5.996s +4.577s└─lvm2-lvmetad.service @7.376s└─lvm2-lvmetad.socket @5.987s└─-.slice
# systemd-analyze critical-chain ntp.service networking.service

最后,让我们看看一个更重要的子命令,它允许生成图形(svg格式)详细的已启动的系统服务,以及在什么时候突出显示它们的初始化时间,如下所示。

确保图形显示模式或x-windows已启用以查看绘图。

# systemd-analyze plot > boot_analysis.svg# xviewer boot_analysis.svg  
Linux启动分析

Linux启动分析

以上所有命令都将打印本地机器的启动性能统计信息。 要通过ssh从远程主机查看信息,请使用-H标志并指定[email protected]指令,如图所示。

# systemd-analyze time -H [email protected]# systemd-analyze blame -H [email protected]# systemd-analyze critical-chain -H [email protected]

systemd-analysis也可用于从系统和systemd(服务管理器)等中查找其他状态和跟踪信息。 有关更多信息,请参阅其手册页。

# man systemd-analyze 

另请参阅如何在SystemD中更改运行级别(目标)

这就是现在! 如果您有任何问题或想法要分享,请使用下面的反馈表单与我们联系。

赞(0) 打赏
未经允许不得转载:老赵部落 » systemd-analyze – 在Linux中查找系统启动性能统计信息

评论 抢沙发