我知道解决长启动时间涉及分析启动什么所需的时间,但是输出 systemd-analyze blame 和 systemd-analyze plot 让我困惑不解。
~ $ systemd-analyze Startup finished in 12.557s (firmware) + 4.516s (loader) + 3.732s (kernel) + 26.720s (userspace) = 47.526s
~ $ systemd-analyze blame | grep "\s[1-9]*\."
8.989s keyboard-setup.service
8.757s dev-sda2.device
6.055s apparmor.service
4.948s accounts-daemon.service
4.446s NetworkManager.service
3.383s gpu-manager.service
3.134s systemd-udevd.service
3.079s snapd.firstboot.service
2.440s udisks2.service
2.249s grub-common.service
2.093s upower.service
1.943s networking.service
1.661s avahi-daemon.service
1.461s rsyslog.service
1.460s pppd-dns.service
1.449s systemd-tmpfiles-setup-dev.service
1.387s systemd-rfkill.service
1.290s colord.service
1.210s resolvconf.service
1.192s apport.service
1.188s systemd-modules-load.service
1.187s systemd-remount-fs.service
1.166s dev-mqueue.mount
1.152s bluetooth.service
1.032s lightdm.service
1.013s plymouth-quit-wait.service
信息
这台机器是戴尔Inspiron 5559;我从2016年2月/ 3月开始就拥有它。
~ $ uname -imporvs Linux 4.8.0-32-generic #34-Ubuntu SMP Tue Dec 13 14:30:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Distro是Lubuntu 16.10 w / LXDE。
~ $ sudo parted /dev/sda unit mib print Model: ATA ST1000LM024 HN-M (scsi) Disk /dev/sda: 953870MiB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1.00MiB 513MiB 512MiB fat32 EFI System Partition boot, esp 2 513MiB 937591MiB 937078MiB ext4 3 937591MiB 953869MiB 16278MiB linux-swap(v1)
最糟糕的是,各个模块的时间有所不同(1到2秒,从我安装Lubuntu后出现此问题),这意味着我需要更新 systemd-analyze blame 不断或记录一系列重新启动,然后进行平均。
任何人都可以告诉我在哪里 开始 ?
UPDATE
通过16.10升至17.04升级sudo apt dist-upgrade 大大改变了这种情况。 ~ $ systemd-analyze blame | grep "\s[1-9]*\."
16.083s dev-sda2.device
15.435s keyboard-setup.service
8.015s systemd-udevd.service
4.090s NetworkManager.service
3.644s systemd-tmpfiles-setup-dev.service
2.621s apparmor.service
2.549s grub-common.service
2.477s plymouth-read-write.service
1.560s accounts-daemon.service
1.107s systemd-modules-load.service
1.002s colord.service
~ $ systemd-analyze critical-chain
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.
graphical.target @25.631s
└─multi-user.target @25.631s
└─getty.target @25.631s
└─getty@tty1.service @25.631s
└─system-getty.slice @25.630s
└─setvtrgb.service @25.407s +222ms
└─systemd-user-sessions.service @25.245s +2ms
└─network.target @25.245s
└─NetworkManager.service @21.154s +4.090s
└─dbus.service @21.147s
└─basic.target @21.139s
└─sockets.target @21.139s
└─snapd.socket @21.136s +2ms
└─sysinit.target @21.110s
└─apparmor.service @18.488s +2.621s
└─local-fs.target @18.488s
└─boot-efi.mount @18.387s +100ms
└─systemd-fsck@dev-disk-by\x2duuid-7930\x2d6EDD.service @18.198s +150ms
└─dev-disk-by\x2duuid-7930\x2d6EDD.device @18.198s
关闭
这个帖子正在关闭,因为我已经迁移到另一个没有出现问题的发行版(Gentoo),所以这个问题已经不再适用了。
grep "\s[1-9]\." 你有什么理由过滤掉加载时间> 10秒的服务?放一个 + 之后 ] 匹配一个或多个数字。
@JacobKrall我没有完全过滤它们,只是我没有任何服务与> 10s加载时间,因此是一位数。我匆匆做了这件事......并且“+”对我不起作用,'*'做了。
—
setun-90
好的,抱歉打扰了。这很奇怪
—
Jacob Krall
+ 没用;它是GNU Grep中的重复运算符之一 gnu.org/software/grep/manual/grep.html#Fundamental-Structure
@JacobKrall我也觉得这也很奇怪。稍后调试。
—
setun-90


systemd-analyze blame(特别是keyboard-setup.service)是位于/etc/init.d中的SysVInit样式脚本。虽然我不知道如何替换基于脚本的服务......