Linux系統下開機啟動時間檢測工具bootchart
簡介
Bootchart 是一種很方便的工具,主要用於分析Linux 系統下的啟動過程,並且能夠形成一個層次分明的圖片,讓使用者很直觀的檢視系統啟動的過程和各個過程耗費的時間,以便使用者能夠分析啟動過程,從而進行優化以提高啟動時間。它由bootchartd 服務和bootchart-render 兩部分組成,後者主要負責生成啟動流程的分析結果圖。
安裝bootchart
目前,在各大Linux 發行版本中,基本都帶有這個包。你只需通過他們對應的源,進行安裝即可。具體的安裝方法可以參見各發行版的具體的包管理機制。
另外,你還可以從 處下載到相應的原始碼包,進行編譯安裝即可。要注意的是bootchart
執行Bootchart
要使bootchart 執行,你需要將他新增到引導器的初始化程序選項,或者手動在init 指令碼(通常是rc.sysinit )中手動新增。不過需要注意的是,如果你是手動新增到init 指令碼的,那麼也要手動停止它,這種情況需要特別留意!
啟動引導器設定
下面我們介紹常用的方法,即將原有引導選項複製一份,並在核心項後面新增'init=/sbin/bootchartd' ,然後通過啟動引導器引導bootchart 。這樣bootchart 會在登入提示符出現的時候自動停止。
Grub 中新增的方法
開啟/boot/grub/menu.lst, 複製貼上原有的引導記錄,並在kernel 行後新增"init=/sbin/bootchartd" 。如下例:
Grub 2 中的新增方法
開啟/boot/grub/grub.cfg ,複製原來的引導區域並按照下面的範例修改之:
然後你就可以重啟,並選擇代bootchart 選項的啟動項了。
rc.sysinit 指令碼中的設定方法
這種方法有一定的危險性(可能導致原有系統無法啟動),所以除非前一種方法失敗,否則不要用這種方法。採用這種方式,不光是每次都要手動停止bootchart (否則很快就會佔滿硬體資源),而且每次開機都會執行一次,而且以後每次軟體包升級 /etc/rc.sysinit 的時候,這些設定都會被覆蓋掉。
另一方面,這種方式是可以讓你看到登入後所發生的一些東西的。
編輯/etc/rc.sysinit 指令碼,先將下面這一行新增到/etc/rc.sysinit
這一行不宜太靠前,否則這部分出問題會導致系統無法啟動。當然也不宜太靠後,因為他之前的專案都無法觀察得到。 我們推薦把他放在配置系統時鐘行的前面。找到如下行:
將下面這一行新增到其前面:
生成bootchart 檔案
在使用bootchart 啟動以後,我們要做的就是使用相關命令,生成一個適合檢視的圖片檔案。具體的生成步驟如下:
1. 登入後關閉 bootchartd 服務
這種方式一定記住,在登入後停止bootchartd 服務。你可以以管理員帳戶執行
也可以用sudo 通過下面的命令來執行:
2. 生成分析結果圖表
你可以通過執行下面的命令來生成分析結果圖:
bootchart -o 目錄名 -f 檔案格式
確保執行命令的目錄有寫許可權,程式就會生成一個名為'bootchart.svg' 的影象,這就是分析結果圖。當然如果你跟了 -f ,指定格式後,就會生產相應格式的影象檔案。
你需要事先安裝Java 執行環境並且在此之前設定正確。
Bootchart 命令常用的引數介紹:
-f,--format <format> 指定檔案格式 (png | eps | svg; default: png)
-h,--help 列印幫助資訊
-o,--output-dir <dir> 指定檔案輸出到那個目錄下,預設是當前目錄
-v,--version 列印幫助資訊