Ubuntu 14.04启动耗时排查:如何获取各启动步骤耗时详情
拆解Ubuntu 14.04启动步骤耗时的实用方法
嘿,既然你已经通过/proc/uptime拿到了总启动耗时,想要深挖每个启动环节的具体耗时,Ubuntu 14.04作为经典的Upstart发行版,有几个非常实用的工具和方法帮你搞定:
1. 用Bootchart生成可视化启动流程(最直观)
Bootchart是专门为Linux启动过程做性能分析的工具,能生成包含所有进程启动时序、资源占用的图表,一眼就能看到哪个环节拖慢了启动。
- 先安装:
sudo apt-get update && sudo apt-get install bootchart - 安装完成后重启系统,系统会自动记录启动过程的数据
- 重启后,在
/var/log/bootchart/目录下会生成以日期命名的.svg或.png图表文件,直接用浏览器打开就能看到每个进程的启动时间线、CPU和内存占用情况,每个步骤的耗时一目了然。
2. 查看Upstart服务的详细启动日志
Ubuntu 14.04默认使用Upstart管理系统服务,每个服务的启动日志都单独存在,能精准查看单个服务的启动耗时:
- 所有Upstart服务的日志都在
/var/log/upstart/目录下,比如想查看网络服务的启动日志:
日志里会包含服务启动、完成的时间戳,直接计算时间差就能得到这个服务的启动耗时。cat /var/log/upstart/network-manager.log - 用
initctl list可以列出所有Upstart管理的服务,方便你定位想要查看的服务。
3. 从内核日志看底层启动细节
内核初始化是启动的第一步,dmesg命令能帮你查看内核层面的启动过程:
- 带时间戳输出内核日志:
你能看到硬件检测、驱动加载、内核初始化等每个步骤的具体时间点,比如搜索dmesg -TLinux version、Freeing initrd memory这类关键字,就能定位内核启动的关键节点,计算耗时。 - 如果想筛选关键信息,可以用:
dmesg -T | grep -E "start|finish|initialized"
4. 从系统日志汇总所有启动事件
/var/log/syslog里记录了整个系统启动过程的所有事件,包括服务启动、系统初始化等:
- 搜索启动相关的事件:
每条记录都有精确的时间戳,对比同一服务的grep -E "Starting|Started|Finished" /var/log/syslogStarting和Started时间,就能算出该服务的启动耗时,还能看到各个服务的启动顺序。
内容的提问来源于stack exchange,提问作者tuk
相关产品推荐
相关产品推荐

