2007年10月21日 星期日

利用 bootchart 來分析 Linux 系統的啟動過程

Bootchart is a tool for performance analysis and visualization of the GNU/Linux boot process. Resource utilization and process information are collected during the boot process and are later rendered in a PNG, SVG or EPS encoded chart.

在 Debian 中,只要 aptitude install bootchart 即可。之後要去修改 /boot/grub/menu.list,在 kernel 的後面加上 init=/sbin/bootchartd,如:

title Debian GNU/Linux, kernel 2.6.18-5-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-5-686 root=/dev/sda1 ro init=/sbin/bootchartd
initrd /boot/initrd.img-2.6.18-5-686
savedefault
改好之後重開機,bootchartd 就會去蒐集開機過程的資訊。接著:
user@debian:~$ bootchart
Parsing /var/log/bootchart.tgz
Wrote image: ./bootchart.svgz
就可以在目前目錄找到一個 bootchart.svgz 檔,這是一個 gzip 壓縮過的檔案,把它改名成 bootchart.svg.gz,然後下 gzip -d bootchart.svg.gz,就可以得到 bootchart.svg 檔。

再透過 Online SVG to PNG/JPEG/TIFF conversion 這個網站的幫助,就可以幫我們轉出 png 檔。

從圖上可以看到一些系統的資訊、開機總共花的時間,以及啟動了哪些 process。

PS: 在 VMware 中 boot Debian Etch 的 bootchart:


[Updated]
透過 rcconf 工具,把 cupsys, exim4, nfs-common 都 disable 之後,比之前快了 8 秒。

1 則留言:

cyt 提到...

若是用 lenny 裡面的版本 (bootchart 0.9-4 -> 0.10~svn405-2)。可以直接:

$ bootchart -f png

產生最後的 bootchart.png。