我正在尝试确定启动后延迟的根本原因。目前使用的是 Ubuntu 16.10 LTS,但同样的问题在之前的版本(最早为 14)上也出现过。
系统在登录屏幕上卡住了大约 30 秒。鼠标光标和屏幕完全冻结。此后系统正常运行。
顶部输出systemd-analyze blame
是......
26.653s upower.service
6.890s NetworkManager-wait-online.service
谷歌搜索 upower.service 似乎大多数人看到的都少于 2 秒。我如何确定 upower.service 启动时间如此之长的原因?
谢谢!
答案1
进一步使用systemd-analyze
附加的命令查看更多输出critical-chain
。此命令据称“打印时间关键单元链的树”。
systemd-analyze
与之相关的命令的示例输出upower.service
:
$ systemd-analyze blame | grep upower
486ms upower.service
$ systemd-analyze critical-chain upower.service
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.
upower.service +486ms
└─basic.target @16.023s
└─sockets.target @16.023s
└─snapd.socket @15.921s +55ms
└─sysinit.target @15.920s
└─apparmor.service @6.264s +9.629s
└─local-fs.target @6.147s
└─run-user-108.mount @36.705s
└─local-fs-pre.target @6.147s
└─systemd-remount-fs.service @6.051s +93ms
└─system.slice @2.394s
└─-.slice @2.389s
如果上面的输出仍然没有给你任何提示,请使用另一个命令systemctl status SERVICE
查看目标服务的相关输出。此命令将打印服务当前是否正在运行,并打印上次启动的相关日志。
以下命令输出示例systemctl
,与以下内容相关upower.service
:
$ systemctl status upower.service
● upower.service - Daemon for power management
Loaded: loaded (/lib/systemd/system/upower.service; disabled; vendor preset:
Active: active (running) since Wed 2016-09-21 23:33:23 MYT; 1min 35s ago
Docs: man:upowerd(8)
Main PID: 967 (upowerd)
Tasks: 3 (limit: 512)
CGroup: /system.slice/upower.service
└─967 /usr/lib/upower/upowerd
Sep 21 23:33:22 HOSTNAME systemd[1]: Starting Daemon for power management...
Sep 21 23:33:23 HOSTNAME systemd[1]: Started Daemon for power management.
简单检查:是否有任何其他设备无缘无故地连接到您的计算机?任何无辜的设备(例如连接到 USB 端口的智能手机)都可能减慢甚至干扰计算机的启动过程。
系统在登录屏幕上卡住了大约 30 秒。鼠标光标和屏幕完全冻结。此后系统正常运行。
转折点:以上问题仅揭示了症状,除了系统加载缓慢之外,几乎无法说明任何其他内容。
不要描述延迟的原因,可以考虑问自己以下任何问题:
启动过程什么时候开始变慢?
我的电脑最近有什么变化?例如 BIOS 更新或自定义。
我是否安装了其他硬件?例如新的设备驱动程序。
我是否安装了额外的软件包或者升级了特定的软件包?
使用哪种类型的硬件?硬件是否会引起问题?
问题中没有这些信息,这意味着我们不可能确定我们不知道的事情的根本原因。缺乏信息是解决问题的任何尝试的陷阱。
答案2
编辑/etc/journald.conf
并添加持久存储。这将保留您之前构建的日志。
启用此功能后,您可以检查 upower 服务以前启动时的日志:
journalctl -b -1 -u upower.service
您可能需要在完成后禁用持久日志记录,因为它将占用大量的磁盘空间。
答案3
我遇到了同样的问题,upower.service 需要 63 秒。因为我有双启动设置,需要频繁切换,这让我抓狂。阅读 upower.freedesktop 网站没有发现任何线索,不知道发生了什么。
尽管是无意的,但我还是设法解决了这个问题。systemd-analyze blame
现在输出:
800ms snapd.firstboot.service
696ms wicd.service
...
250ms upower.service
所以现在我的启动时间非常快。首先,我重新安装了 upower(这没有改变任何东西)。然后我重新安装了 nvidia 驱动程序,还重新安装了 plasma - 这似乎解决了问题。我注意到双显示器设置在开始时加载速度很慢,而 plasma(我使用 Kubuntu 16.04)经常忘记设置。如果你谷歌搜索“ubuntu slow boot nvidia”,你会得到很多结果,这让我决定尝试一下。
我写这个答案是希望它能帮助其他人复制成功。为了重新安装 upower,我遵循了以下指南:点击
#re-installing nvidia drivers
sudo apt-get purge nvidia-*
sudo apt-get install nvidia-current nvidia-settings
#uninstalling plasma
sudo apt-get purge kubuntu-desktop plasma-desktop
sudo apt-get autoremove
#installing plasma
sudo apt-add-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y