使用systemd-analyze 工具來分析各個服務進程的啓動性能【轉】

轉自:https://www.cnblogs.com/xingmuxin/p/11413784.html

systemd-analyze是一個分析啓動性能的工具,用於分析啓動時服務時間消耗。默認顯示啓動是內核和用戶空間的消耗時間:使用systemd-analyze plot > boot.svg生成一張啓動詳細信息矢量圖,然後用圖像瀏覽器或者網頁瀏覽器打開查看 。

 [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
複製代碼

(3)打印分析圖及其他命令
systemd-analyzeplot打印一個svg格式的服務消耗時間表,通過瀏覽器可以以圖形的方式展示,非常直觀:

複製代碼
[root@localhost~]#systemd-analyze plot>plot.svg   

systemd-analyzedot用分隔符產生當前服務
systemd-analyzedump以友好方式顯示當前服務狀態
6systemd文件類型及存放位置
systemd配置文件被稱爲unit單元,根據類型不同,以不同的擴展名結尾。
.service系統服務;
.target一組系統服務;
.automount自動掛載點;
.device能被內核識別的設備;
.mount掛載點;
.path文件系統的文件或者目錄;
.scope外部創建的進程;
.slice一組分層次管理的系統進程;
.snapshot系統服務狀態管理;
.socket進程間通訊套接字;
.swap定義swap文件或者設備;
.timer定義定時器。
複製代碼

最後再總結一下:

# 查看啓動耗時
$ systemd-analyze

# 查看每個服務的啓動耗時
$ systemd-analyze blame

# 顯示瀑布狀的啓動過程流
$ systemd-analyze critical-chain

# 顯示指定服務的啓動流
$ systemd-analyze critical-chain atd.service

查看所有的服務
systemctl list-units --type=service

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章