我一直在检查一些 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 也是我唯一的操作系统,升级到较新版本后,不知为何启动速度变得非常慢。