自升级到 16.04 以来启动速度变慢

自升级到 16.04 以来启动速度变慢

升级到 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.serviceaccounts-daemon.servicevboxadd-x11.service

答案1

当我发现问题时,我回答了自己:

确实是 lvm 导致了启动时间缓慢:我有一个snap-2017-05-09在升级前创建的快照,以防出现问题。由于升级会消耗磁盘空间,快照差异很大(写入了 10 Gb 的数据),在启动时使用 systemd 扫描 lvm 时会出现性能问题(这里, 相关linux-lvm 邮件列表)。

我通过删除快照并将启动时间缩短至约 35 秒来解决了我的问题。

相关内容