如何减少启动时间

如何减少启动时间

我一直在检查一些 systemd-analyze 输出,实际上我的启动时间没有遇到什么关键问题,我只是想知道是否可以进一步缩短它。我想说的是,我使用的是 SSD,Ubuntu 是我唯一的操作系统。

systemd-分析
启动耗时 5.450 秒(固件)+ 565 毫秒(加载器)+ 2.632 秒(内核)+ 10.086 秒(用户空间)= 18.734 秒
用户空间中,graphic.target 在 10.071 秒后达到
systemd-analyze 责备
          6.607s NetworkManager-等待-在线.服务
          5.660s fwupd.服务
          5.042s 螺栓服务
          4.134s plymouth-quit-wait.service
          1.579s dev-sda2.device
          1.552s systemd-backlight@backlight:intel_backlight.service
          1.367s plymouth-read-write.service
          1.211s snapd.service
           903ms systemd-logind.service
           572ms systemd-journald.service
           555ms dev-loop9.设备
           523ms dev-loop6.device
           515ms man-db.service
           499ms dev-loop8.device
           478ms dev-loop5.device
           472ms dev-loop13.device
           448ms dev-loop7.device
           441ms dev-loop11.device
           438ms dev-loop10.device
           432ms dev-loop12.device
           415ms udisks2.service
           406ms dev-loop14.device
           319ms snap-gnome\x2d3\x2d28\x2d1804-71.mount
图形.目标@10.071秒
└─multi-user.target @10.071秒
  └─kerneloops.service @10.042s +27ms
    └─network-online.target @10.032s
      └─NetworkManager-wait-online.service @3.422s +6.607s
        └─NetworkManager.service @3.224s +186ms
          └─dbus.service @3.218s
            └─basic.target @3.211s
              └─sockets.target @3.211s
                └─snapd.socket @3.208s +2ms
                  └─sysinit.target @3.205s
                    └─systemd-backlight@backlight:intel_backlight.service @1.468s +1.552s
                      └─system-systemd\x2dbacklight.slice @1.467s
                        └─system.slice @212ms
                          └─-.slice @212ms

答案1

如果此系统不是网络中的服务器,您可以先减少所用的时间NetworkManager-wait-online.service,为此请禁用该服务,如下所示:

sudo systemctl disable NetworkManager-wait-online.service

如果重启后再次出现,您可以按照上述命令操作:

sudo systemctl mask NetworkManager-wait-online.service

请先尝试此操作,检查启动时间是否有所改善,然后再继续执行其他步骤。有时,仅此一项就可以大大缩短启动时间。


要随时回滚上述更改,请运行:

sudo systemctl unmask NetworkManager-wait-online.service

然后按照:

sudo systemctl enable NetworkManager-wait-online.service

什么是systemd-networkd-wait-online.service

名称 systemd-networkd-wait-online.service, systemd-networkd-wait-online - 等待网络上线

摘要 systemd-networkd-wait-online.service

   /lib/systemd/systemd-networkd-wait-online

描述 systemd-networkd-wait-online 是一个一次性系统服务(参见 systemd.service(5)),用于等待网络配置。默认情况下,它将等待它所知道的、由 systemd-networkd.service(8) 管理的所有链接完全配置或失败,并且至少有一个链接处于联机状态。此处的联机表示链接的运行状态等于或高于“降级”。阈值可以通过 --operational-state= 选项配置。

其目的NetworkManager-wait-online.service是等待网络上线后再继续启动过程。

例如,在服务器依赖网络资源作为启动过程的一部分(例如,安装远程驱动器)的情况下,或者在工作站依赖网络才能正确启动(例如,瘦客户端)的情况下,就需要这样做。

否则,桌面用户可以禁用NetworkManager-wait-online.service,并且网络将在启动完成后正常连接,减去不必要的等待时间。

在这种情况下禁用是安全的。

答案2

这条 1.5 秒的线是漏洞

      1.552s systemd-backlight@backlight:intel_backlight.service

在我没有错误的系统上,它只有 1 毫秒:

$ systemd-analyze blame | grep backlight

         1ms systemd-backlight@backlight:intel_backlight.service

更多提示(包括 NetworkManager-wait-online.service)可以在这里找到:

答案3

对我来说,禁用 snapd 成功解决了这个问题。Ubuntu 也是我唯一的操作系统,升级到较新版本后,不知为何启动速度变得非常慢。

相关内容