Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6086889
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类: LINUX

2013-05-22 15:52:45

原文地址:Linux启动时间测试-2 作者:nlfdh

1. bootchart,用于测试linux启动时间,是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。
在系统启动时,Bootchart(/sbin/bootchartd)替代了/sbin/init程序执行初始化操作,并收集
系统中的统计数据。因此使用时必须指定内核的init参数:
    init=/sbin/bootchartd

    在启动过程中,bootchart会收集数据保存到日志文件中,当检测到启动完成后(通过查看某个特殊
的进程是否启动来探测,比如gdmgreeter)停止收集并将收集的数据打包到文件:
    /var/log/bootchart.tgz
系统启动完成后就可生成数据图表了:
              java -jar bootchart.jar

2. printkTime 内核中的一个补丁,从2.6.11已经加入标准内核。

通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析。PrintkTime最早为CELF所提供的一个内核补丁,在后来的Kernel 2.6.11版本中正式纳入标准内核。所以大家可能在新版本的内核中直接启用该功能。如果你的Linux内核因为某些原因不能更新为2.6.11之后的版本,那么可以参考CELF提供的方法修改或直接下载它们提供的补丁:

开启PrintkTime功能的方法很简单,只需在内核启动参数中增加“time”即可。当然,你也可以选择在编译内核时直接指定“Kernel hacking”中的“Show timing information on printks”来强制每次启动均为内核信息增加时间戳。这一种方式还有另一个好处:你可以得到内核在解析启动参数前所有信息的时间。因此,我选择后一种方式。

当完成上述配置后,重新启动Linux,然后通过以下命令将内核启动信息输出到文件:

dmesg -s 131072 > ktime

然后利用一个脚本“show_delta”(位于Linux源码的scripts文件夹下)将上述输出的文件转换为时间增量显示格式:

/usr/src/linux-x.xx.xx/scripts/show_delta ktime > dtime

这样,你就得到了一份关于Linux启动时间消耗的详细报告。


阅读(886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~