Bootchart
使用 Bootchart 可以很方便地分析 Linux 啟動流程,分析結果可以用來優化啟動速度。包含的 bootchartd 服務負責記錄及展示分析結果。
注意: Bootchart 已經成為 systemd 的一部分,請參考 Improve boot performance#Analyzing the boot process 頁面。本文介紹的是合併之前的老版本和bootchart2。
安裝Bootchart[編輯 | 編輯原始碼]
安裝 bootchartAUR。
運行Bootchart[編輯 | 編輯原始碼]
要運行 bootchart,需要將他添加到引導器的初始化進程選項,或者手動在init腳本(通常是rc.sysinit)中手動添加。不過需要注意的是,如果你是手動添加到init腳本的,那麼也要手動停止它,總之,這種情況需要特別留意!
啟動引導器設置[編輯 | 編輯原始碼]
下面我們介紹常用的方法,即將原有引導選項複製一份,並在內核項後面添加init=/usr/bin/bootchartd
. 方法參閱kernel parameters. 然後通過啟動引導器引導bootchart。這樣bootchart會在登錄提示符出現的時候自動停止。
生成分析結果圖表[編輯 | 編輯原始碼]
你可以通過運行下面的命令來生成分析結果圖:
bootchart-render
確保運行命令的目錄有寫權限,程序就會生成一個名為'bootchart.png'的圖像,這就是分析結果圖。
你需要事先安裝Java運行環境並且在此之前設置正確。
問題解決[編輯 | 編輯原始碼]
Bootchart-render 如果無法生成 'bootchart.png' 圖片並顯示如下錯誤信息:
/var/log/bootchart.tgz not found
主要原因是 bootchartd 無法檢測到啟動過程何時停止。如該使用非 KDM 或 GDM 的啟動管理器如 SLIM 或 entrance 時會發生這個問題。可以打開 /sbin/bootchartd
腳本並將這些程序加到 exit_proc
變量中:
# The processes we have to wait for local exit_proc="gdmgreeter gdm-binary kdm_greet kdm slim"
如果沒有使用啟動管理器,修改 exit_proc
變量為:
# The processes we have to wait for local exit_proc="login"
參考資料[編輯 | 編輯原始碼]
- Bootchart主頁[失效鏈接 2021-11-07 ⓘ]
- 如何快速啟動上網本的 LWN 文章寫得很好,提供了許多快速啟動的技巧,儘管許多不適合一般用戶使用。(修改 X.org 內核 kernel 等)。