测量Linux系统启动时间
转自:http://blog.hushlight.com/2014/04/how-to-measure-linux-bootup-time/
摘要:
衡量Linux系统启动时间的方法很多,这个比较容易自动化,结果比较稳定,在 Suse 11 and Redhat 6上验证过,不同linux可能具体细节会有所不同。
工具:
Bootchart http://www.bootchart.org/
准备:
下载 bootchart-0.9.tar.bz2
安装 ,运行install.sh 即可,很快的
检查/boot/grub/menu.lst 中kernel那一行有没有 init=/sbin/bootchartd ,没有就加上
改 /sbin/bootchartd ,确定 local exit_proc=”gnome-session”,注意这里是以gnome-session启动作为系统启动完成标准,实际上差不多是桌面出现时间点,如果是无图系统,那就要改成其他进程作为启动完成标准
root用户要改成自动登录
Redhat, 改 /etc/gdm/custom.conf, 新增
[deamon]
AutomaticLoginEnable=true
AutomaticLogin=root
Suse要麻烦一点,除了改Modify /etc/gdm/custom.conf, 加上
[deamon]
AutomaticLoginEnable=true
AutomaticLogin=root
还要改 /etc/sysconfig/displaymanager, 加上 DISPLAYMANAGER_AUTOLOGIN=”root”
安装Java,注意必须用Sun J2SE SDK (http://java.sun.com/j2se/1.4.2/ 或者http://java.sun.com/j2se/1.5.0/,版本千万别高了。。。)
安装Apache Ant package
运行ant,编译bootchart的JAR包
好了,现在你有bootchart.jar了。6-9步可以不用在linux机器上完成, 随便在哪编译完了扔进bootchart文件夹里也行
检查:
重新启动 (shutdown -r 0)
检查 /var/log/bootchart.tgz 有没有生成,其中有没有log文件
java -jar bootchart.jar -o /var/log/
打开 /var/log/bootchart.png 看看是不是成功生成了时间图,如果是那就万事大吉了
好了,剩下的就是把1-3步自动化,不怕累的话手动做几遍取平均值就行啦
总结:
性能测试中衡量系统开机时间,很重要的一点是:怎么算开机完成? 在这个方法里,我用桌面出现作为系统启动结束标志,但在实际项目中标准可能会不一样,比如也许会用CPU稳定为标准,那就要另换方法了。
最后一点小tip,多次运行时不要连续重启系统,最好idle 5-10分钟后再重启。实际上大部分性能相关测试,都应该在重启系统后 5-10分钟再执行,这样才能保证数据不被cache之类影响。
------解决方案--------------------感谢分享,学习了。