升级到 16.04 后,启动时间增加了。系统卡住了大约 80 秒,并显示以下消息:
A start job is running for dev-mapper-sysvg\x2dlvhome.device"
以下是一些信息:
$ systemd-analyze
Startup finished in 5.257s (kernel) + 2min 3.377s (userspace) = 2min 8.635s
$ systemd-analyze blame
10.868s vboxadd.service
8.220s ModemManager.service
7.230s NetworkManager-wait-online.service
6.476s accounts-daemon.service
5.223s vboxadd-x11.service
5.194s mdadm.service
5.005s networking.service
4.991s dev-sda1.device
4.953s NetworkManager.service
4.836s apport.service
4.260s lightdm.service
3.939s speech-dispatcher.service
3.610s thermald.service
3.575s virtualbox-guest-utils.service
3.406s gpu-manager.service
2.601s postfix.service
2.425s rsyslog.service
2.418s polkitd.service
2.116s loadcpufreq.service
2.098s lvm2-monitor.service
2.036s ssh.service
1.888s avahi-daemon.service
1.758s grub-common.service
1.486s colord.service
1.379s systemd-logind.service
1.352s irqbalance.service
1.299s run-rpc_pipefs.mount
1.266s systemd-journald.service
1.069s systemd-udevd.service
1.001s systemd-modules-load.service
950ms brltty.service
917ms systemd-tmpfiles-setup-dev.service
879ms ondemand.service
855ms kmod-static-nodes.service
761ms console-setup.service
622ms virtualbox.service
602ms dev-mqueue.mount
601ms sys-kernel-debug.mount
567ms dev-hugepages.mount
461ms systemd-user-sessions.service
411ms systemd-sysctl.service
328ms [email protected]
312ms systemd-tmpfiles-setup.service
255ms upower.service
253ms dns-clean.service
246ms systemd-journal-flush.service
220ms ntp.service
217ms plymouth-read-write.service
以下是图表:systemd-analyze plot
启动时间图表
我们可以看到,一些初始化硬盘的服务需要很长时间。我有一个 lvm,下面是设置:
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvhome sysvg -wi-ao---- 180,00g
lvroot sysvg owi-a-s--- 20,00g
lvswap sysvg -wi-a----- 8,00g
snap-2017-05-09 sysvg swi-a-s--- 20,00g lvroot 56,68
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sdb7 sysvg lvm2 a-- 234,55g 6,55g
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
sysvg 1 4 1 wz--n- 234,55g 6,55g
编辑1:我用lvm移除了硬盘,启动时间下降到~30秒:
systemd-analyze
Startup finished in 5.299s (kernel) + 26.234s (userspace) = 31.534s
Systemd-analyze blame
9.541s vboxadd.service
6.516s NetworkManager-wait-online.service
6.321s networking.service
5.366s dev-sda1.device
5.318s NetworkManager.service
4.937s ModemManager.service
4.741s apport.service
4.709s mdadm.service
4.545s thermald.service
4.316s vboxadd-x11.service
4.025s speech-dispatcher.service
3.307s accounts-daemon.service
3.162s gpu-manager.service
2.960s rsyslog.service
2.775s virtualbox-guest-utils.service
我使用 lvm 重新添加了我的硬盘,并且按照@user535733 的建议,我删除了vboxadd.service
、、、,启动时间仍然约为 2 分 8ModemManager.service
秒accounts-daemon.service
。vboxadd-x11.service
答案1
当我发现问题时,我回答了自己:
确实是 lvm 导致了启动时间缓慢:我有一个snap-2017-05-09
在升级前创建的快照,以防出现问题。由于升级会消耗磁盘空间,快照差异很大(写入了 10 Gb 的数据),在启动时使用 systemd 扫描 lvm 时会出现性能问题(这里, 相关linux-lvm 邮件列表)。
我通过删除快照并将启动时间缩短至约 35 秒来解决了我的问题。