可通过systemd-analyze time、blame、critical-chain等命令及bootchart工具分析统信UOS开机各阶段耗时,定位启动缓慢环节:先查整体时间分布,再识别高耗时服务,追溯关键路径依赖,最后结合日志与图形化图表精确定位。

如果您希望了解统信UOS系统在开机过程中各阶段的耗时分布,以定位启动缓慢的具体环节,则可通过内置的systemd分析工具获取精确的启动时间分解。以下是查看与分析系统启动性能的操作步骤:
一、使用systemd-analyze查看整体启动时间
该命令可输出从固件初始化到用户空间服务就绪的完整时间链,并标明graphical.target达成时刻,帮助判断是底层硬件、内核加载还是桌面环境启动拖慢了整体速度。
1、按Ctrl + Alt + T打开终端。
2、输入命令:systemd-analyze time,回车执行。
3、观察输出结果中各段耗时,例如“firmware”、“loader”、“kernel”、“userspace”及“graphical.target reached after”对应的时间值。
二、使用systemd-analyze blame识别高耗时服务
该命令按服务启动耗时倒序列出所有unit,便于快速发现拖慢启动过程的异常或冗余服务,如NetworkManager-wait-online.service等典型延迟源。
1、在已打开的终端中输入:systemd-analyze blame,回车运行。
2、逐行查看输出列表,重点关注耗时超过1秒的服务项(例如6.704s NetworkManager-wait-online.service)。
3、记录前五名高耗时服务名称,供后续针对性优化或禁用参考。
三、使用systemd-analyze critical-chain追溯关键路径依赖
该命令展示从启动目标(如default.target)向上回溯的最长依赖链,揭示影响最终就绪时间的核心服务路径,有助于理解为何某个服务延迟会传导至整个桌面就绪时间。
1、在终端中执行:systemd-analyze critical-chain graphical.target。
2、观察输出中嵌套缩进的unit列表,最顶层为graphical.target,逐级向下为直接依赖服务。
3、比对其中是否包含已知高耗时服务(如plymouth-quit-wait.service或lightdm.service),确认其是否位于关键路径上。
四、启用systemd启动过程可视化日志
通过启用systemd的详细启动日志记录,可在重启后回溯每项服务的实际启动起止时间戳,弥补blame命令仅提供总耗时的局限性,适用于需精确定位瞬态延迟场景。
1、执行命令:sudo systemctl enable systemd-journald-debug.socket。
2、重启系统:sudo reboot。
3、重启完成后,运行:sudo journalctl -b --since "1 hour ago" | grep "Started\|Starting",筛选启动期间服务状态日志。
五、结合bootchart生成图形化启动性能图谱
bootchart是一个轻量级启动性能绘图工具,可生成包含CPU、I/O、进程活动的SVG格式时间轴图表,直观呈现各服务并行/串行启动关系及资源争用情况。
1、安装bootchart:sudo apt install bootchart。
2、启用启动记录:sudo systemctl enable bootchart。
3、重启一次系统以触发数据采集:sudo reboot。
4、重启后执行:sudo bootchart,系统将自动生成/boot/bootchart.svg文件。
5、使用浏览器打开/boot/bootchart.svg,查看CPU占用率曲线、进程树展开图及各服务启动时间条形图。


















