用bootchart分析Linux開機過程,關掉影響開機速度的程序

sudo apt-get install bootchart pybootchartgui
https://wiki.ubuntu.com/BootCharting
http://www.bootchart.org/samples.html
截圖見文末.

安裝bootchart時會執行如下操做:
update-initramfs: Generating /boot/initrd.img-3.14.18-031418-generic
由一個運行在initramfs裏的工具執行審計操做,記錄計算機啓動時的狀態.
/usr/share/initramfs-tools/scripts/init-top/bootchart
update-initramfs - generate an initramfs image
sudo nano /etc/init/bootchart.conf 註釋掉 start on 這一行便可禁用 bootchart.

bootchart用於記錄開機過程當中各類進程消耗的時間,CPU,I/O操做.
bootchart收集的數據打包在/var/log/bootchart,裏面包含PNG或SVG圖片(須要安裝pybootchartgui):
/var/log/bootchart/ubuntu-trusty-20150111-1.png
/var/log/bootchart/ubuntu-trusty-20150111-1.tgz
經過分析bootchart啓動圖和dmesg日誌找出Linux系統啓動慢的緣由.
啓動記錄圖主要包含這些內容:
1.CPU使用率和I/O等待
2.磁盤吞吐量和使用率
3.進程的CPU時間,等待I/O的時間,睡眠時間
另外注意有3條時間分隔線,第一條標記hostname啓動,中間那一條標記Xorg啓動,第三條標記開機完成(對應頭部的time開機總計時間).

關閉VirtualBox/MySQL/PHP-FPM/Nginx後開機時間從70秒降到60秒.
Linux上在Chrome裏打開兩次開機的啓動圖,在Chrome標籤上滾動切換,對比分析,更加直觀.
對比可見,hostname到Xorg的時間明顯縮短了.
Xorg的啓動是在/etc/rc.local以後的,也就是在屏幕亮度下降以後的.

注意到systemd-udevd這個進程消耗的CPU和磁盤都挺多.
udev是Linux Kernel的設備管理器,它主要的功能是管理/dev下的設備節點.

相關文章
相關標籤/搜索