ubuntu性能优化之查看系统为何慢?

ubuntu系统使用感觉挻流畅,舒服这是给我第一印象。但是有时候关机会屏幕到logo时转圈圈等好久。这严重影响到我的使用感。于是就想从根本上找找是什么原因导致的。

系统开机、关机为何慢?

首先要找出是哪里慢,再是为何慢?

ubuntu系统中有一利器,查看系统关机时长,最标准、准确的方法是使用 systemd-analyze 工具,它既能查看开机时间,也能查看关机时间

此外,还可以通过查看系统日志来精准排查关机卡顿的具体原因。以下是三种常用方法:

方法一:查看关机 / 重启历史(最直观)

使用 last 命令可以查看系统过去的关机、重启和登录记录,能直接看到每一次关机的耗时。

在终端输入:

last -x shutdown reboot

解读输出

  • 第一列是用户名(通常是 shutdownreboot)。
  • 第二列是事件类型(shutdown 表示关机,reboot 表示重启)。
  • 第三列是时间和日期。
  • 最后一列是持续时长(例如 shutdown - 00:01 表示关机耗时 1 分钟)。

方法二:分析关机过程(精准排查卡顿)

使用 systemd-analyze 分析关机过程,能定位到是哪个服务或进程导致了关机耗时过长。

Ubuntu20.04在终端输入:

systemd-analyze blame --shutdown

解读输出

  • 该命令会列出关机过程中所有服务的执行时间。
  • 耗时最长的服务排在前面,你可以重点关注那些耗时超过 1 秒的服务。
  • 结合我们之前的讨论,如果 systemd-homed.servicesnapd.service(即使已卸载,残留配置可能仍有影响)出现在列表中且耗时很长,就可以针对性处理。

ubuntu22.04在终端输入:

# 查看上一次关机的详细耗时分析
systemd-analyze plot > shutdown-plot.svg

执行后会在当前目录生成 shutdown-plot.svg 文件,双击打开这个文件

systemd-analyze信息
  • 图表横轴是时间(秒),纵轴是各个服务。
  • 找到标注 shutdown.target 的区域,能清晰看到从触发关机到完全断电的总时长。
  • 重点看颜色较深、耗时较长的服务块,这些就是导致关机卡顿的元凶。

方法三:查看系统日志(深入排查)

通过查看系统日志,可以获取关机过程的详细信息,帮助排查具体卡顿原因。

在终端输入:

journalctl -b -1 -e

# 查看上一次关机的核心日志(重点看超时/等待信息)
journalctl -b -1 | grep -E 'shutdown|Power-Off|Timeout|homed'

参数说明

  • -b -1:查看上一次启动之前的系统日志(即上一次关机 / 重启的日志)。
  • -e:直接跳到日志文件的末尾,快速定位关机相关的最后几行信息。

关键查找

  • 搜索关键词 Timeout:如果看到 Timeout stopping service,后面跟着的服务名就是卡顿根源。
  • 搜索关键词 systemd-homed:如果有 Waiting for process 等字样,就是这个服务在拖慢关机。

如果日志里查到 systemd-homed 或其他服务超时,执行以下命令彻底解决:

# 彻底禁用所有可能导致关机卡顿的服务
sudo systemctl mask systemd-homed.service
sudo systemctl mask NetworkManager-wait-online.service
# 清理关机残留进程
sudo rm -rf /run/user/* /var/run/user/*

总结推荐

  1. 想快速了解历史关机时长:用 last -x shutdown reboot
  2. 想排查当前关机卡顿原因:用 systemd-analyze blame --shutdown
  3. 想深入分析关机过程细节:用 journalctl -b -1 -e

将本页面加入收藏夹

      如果觉得本文对您有用。建议按下 Ctrl+D (Windows) 或 Cmd+D (Mac) 收藏本页,以便在下次需要时快速查阅解决方案。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress