如何查看服務(wù)啟動時間 systemd-analyze性能分析工具

systemd-analyze 是排查 linux 系統(tǒng)啟動慢的核心工具,其主要用法包括:1. 使用 systemd-analyze 查看總啟動時間及內(nèi)核與用戶空間耗時;2. 通過 systemd-analyze critical-chain 分析關(guān)鍵路徑,找出拖慢啟動的依賴服務(wù)鏈;3. 執(zhí)行 systemd-analyze blame 列出各服務(wù)啟動耗時,定位耗時最長的服務(wù);4. 可選啟用調(diào)試日志或生成啟動流程圖進(jìn)一步分析;優(yōu)化建議包括禁用不必要的服務(wù)、去除對網(wǎng)絡(luò)的不必要依賴,并結(jié)合系統(tǒng)版本綜合判斷結(jié)果。

如何查看服務(wù)啟動時間 systemd-analyze性能分析工具

系統(tǒng)啟動時間是排查性能問題的重要參考,尤其是當(dāng)你發(fā)現(xiàn) linux 機(jī)器開機(jī)慢的時候。systemd-analyze 是 systemd 提供的一個內(nèi)置工具,能幫你快速了解服務(wù)的啟動耗時和整體性能瓶頸。

如何查看服務(wù)啟動時間 systemd-analyze性能分析工具


查看總啟動時間和關(guān)鍵路徑

運(yùn)行以下命令就能看到整個系統(tǒng)的啟動耗時:

如何查看服務(wù)啟動時間 systemd-analyze性能分析工具

systemd-analyze

輸出會顯示兩個關(guān)鍵指標(biāo):

  • Startup finished:表示從開機(jī)到系統(tǒng)準(zhǔn)備好所需的時間(包括內(nèi)核、initramfs 和用戶空間)
  • kernel + userspace:分別列出內(nèi)核加載和用戶空間初始化的時間

如果這個時間明顯偏長,可以用下面這條命令進(jìn)一步分析關(guān)鍵路徑:

如何查看服務(wù)啟動時間 systemd-analyze性能分析工具

systemd-analyze critical-chain

它會列出影響啟動時間的“關(guān)鍵鏈”,也就是最耗時的一條服務(wù)依賴路徑。比如某個服務(wù)因?yàn)榈却W(wǎng)絡(luò)或磁盤超時導(dǎo)致整體延遲,通常會在這里體現(xiàn)出來。


查看單個服務(wù)的啟動耗時

如果你懷疑某個具體的服務(wù)拖慢了系統(tǒng)啟動,可以這樣查看它的詳細(xì)啟動時間:

systemd-analyze blame

該命令會按啟動時間排序,列出所有服務(wù)的耗時。例如你可能會看到類似這樣的輸出:

12.345s some-service.service  8.765s another-service.service  ...

排在最上面的就是啟動時間最長的服務(wù)。你可以根據(jù)名字判斷是否必要,或者是否有優(yōu)化空間。

如果想更深入了解某個服務(wù)的具體啟動過程,可以用:

systemd-analyze log-level debug systemd-analyze log-target console

然后重啟系統(tǒng)觀察日志,不過這屬于進(jìn)階操作,一般先用 blame 和 critical-chain 足夠定位大部分問題。


優(yōu)化建議與注意事項(xiàng)

  • 如果某個服務(wù)啟動時間很長但又不常用,可以考慮禁用它:
    sudo systemctl disable some-slow-service
  • 某些服務(wù)默認(rèn)會等待網(wǎng)絡(luò)就緒,但如果不需要聯(lián)網(wǎng),可以修改服務(wù)文件去掉對網(wǎng)絡(luò)的依賴。
  • 使用 systemd-analyze plot 可以生成完整的啟動流程圖,保存為 html 文件后便于可視化分析:
    systemd-analyze plot > boot-time.html

需要注意的是,不同發(fā)行版對服務(wù)的默認(rèn)配置可能略有差異,所以最好結(jié)合自己的系統(tǒng)版本來看結(jié)果。


基本上就這些,掌握這幾個命令和思路,大多數(shù)系統(tǒng)啟動慢的問題都能快速定位。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊6 分享