Ubuntu 14.04启动耗时排查:如何定位28秒启动的耗时环节?
获取Ubuntu 14.04各启动步骤的耗时详情
嘿,既然你已经通过/proc/uptime拿到了总启动耗时,想要拆分各个环节的细节的话,因为Ubuntu 14.04用的是Upstart初始化系统(不是后续版本的systemd),这几个工具和方法绝对能帮到你:
1. 用Bootchart生成可视化启动耗时报告
这是最直观的方法,它会记录整个启动过程中所有进程的启动时间、运行时长和依赖关系,最后生成一个交互式图表。
- 首先安装工具:
sudo apt-get update && sudo apt-get install bootchart - 重启你的系统:Bootchart会在下次启动时自动运行并收集数据
- 重启完成后,生成的报告包在
/var/log/bootchart.tgz,先解压:sudo tar xzf /var/log/bootchart.tgz -C /tmp - 打开
/tmp/index.html(用任意浏览器),就能看到详细的启动流程时间线,包括内核初始化、各个Upstart任务、后台服务的启动耗时,甚至能看到哪些进程拖慢了启动速度。
2. 查看Upstart任务的日志详情
每个Upstart启动任务的日志都单独存在/var/log/upstart/目录下,你可以直接查看这些日志来计算单个任务的启动耗时:
- 比如查看网络服务的启动日志:
cat /var/log/upstart/network-manager.log - 如果你想批量筛选所有任务的启动/结束时间,可以用这个命令:
从输出里对比每个任务的grep -r "start\|stop" /var/log/upstart/ | sortstart和对应的stop(或就绪)时间,就能算出单个任务的耗时。
3. 分析内核启动阶段的耗时
内核初始化阶段的细节可以通过dmesg命令查看,它会记录内核启动时的所有硬件初始化、驱动加载等操作的时间:
- 用带时间戳的格式查看
dmesg:
你可以对比开头的内核启动时间和最后一条内核日志的时间,算出内核阶段的总耗时,也能看到每个硬件(比如磁盘、网卡)初始化花了多久。dmesg -T
小提示
如果想在启动时实时看到文本输出(虽然可能滚动太快),可以在系统启动时按住Esc键,关闭图形化启动界面,直接看启动过程中的任务执行情况。
内容的提问来源于stack exchange,提问作者tuk
相关产品推荐
相关产品推荐

