启动后长时间延迟 - upower.service 需要 26 秒

启动后长时间延迟 - upower.service 需要 26 秒

我正在尝试确定启动后延迟的根本原因。目前使用的是 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

相关内容