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下的设备节点.
![](http://static.oschina.net/uploads/space/2015/0111/161616_zaGh_561214.png)