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.
[email protected]
└─[email protected]+16.994s
└─[email protected]
└─[email protected]+54ms
└─[email protected]+535ms
└─[email protected]
└─[email protected]
└─[email protected]
└─[email protected]
└─[email protected]+2ms
└─[email protected]+67ms
└─[email protected]
└─[email protected]+10.871s
└─systemd-fsck@dev-disk-by\x2duuid-8c77568b\x2d7e51\x2d4e32\x2dbbdf\[email protected]+226ms
└─[email protected]+152ms
└─[email protected]+25ms
(3)打印分析圖及其他命令
systemd-analyzeplot打印一個svg格式的服務消耗時間表,通過浏覽器可以以圖形的方式展示,非常直觀:
復制代碼代碼如下:
[root@localhost~]#systemd-analyzeplot>plot.svg
其他參數:
systemd-analyzedot用分隔符產生當前服務
systemd-analyzedump以友好方式顯示當前服務狀態
6systemd文件類型及存放位置
systemd配置文件被稱為unit單元,根據類型不同,以不同的擴展名結尾。
.service系統服務;
.target一組系統服務;
.automount自動掛載點;
.device能被內核識別的設備;
.mount掛載點;
.path文件系統的文件或者目錄;
.scope外部創建的進程;
.slice一組分層次管理的系統進程;
.snapshot系統服務狀態管理;
.socket進程間通訊套接字;
.swap定義swap文件或者設備;
.timer定義定時器。