initrd.img(grub的“正在加载初始ramdisk ……”)是否会降低我的启动速度?
我在SSD上,文件碎片无论如何都不重要,但我注意到grub中的“加载初始ramdisk …”消息需要更长的时间,我认为应该这样做。 它在普利茅斯跑步前持续约7秒。 普利茅斯本身只需要大约3秒钟(如果它早点开始并持续更长时间会很好)。 然后lightdm / greeter屏幕出现2到3秒钟。
所以我做了一点实验并运行了filefrag -v /boot/init*
并注意到我的内核4.4.0-53似乎过于分散:
File size of /boot/initrd.img-4.4.0-53-generic is 49027703 (11970 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 3: 4351562.. 4351565: 4: 1: 4.. 4095: 2334720.. 2338811: 4092: 4351566: 2: 4096.. 8191: 2330624.. 2334719: 4096: 2338812: 3: 8192.. 10239: 2355200.. 2357247: 2048: 2334720: 4: 10240.. 11969: 2408448.. 2410177: 1730: 2357248: last,eof
我很好奇碎片化的initrd.img
将如何影响启动性能。 是否值得进行碎片整理?
当然,我总是愿意接受使initrd.img
更小更快的建议。
注意:除了mSata SSD和全尺寸SSD,我的笔记本电脑还有一个包含Ubuntu 14.04的全尺寸硬盘,所以我有兴趣对initrd.img
进行碎片整理,而不仅仅是SSD。 当前的启动会话来自mSata SSD,虽然仅限于SATA II速度,而不像SATA III总线上的全尺寸驱动器。
编辑1: – systemd
启动图表
根据下面的评论,我已经包含了systemd-bootchart ,它是通过修改grub内核参数生成的:
GRUB_CMDLINE_LINUX_DEFAULT="splash vt.handoff=7 kaslr init=/lib/systemd/systemd-bootchart"
引导图保存到: /run/log/bootchart-20161224-1801.svg
。 我不得不使用gimp
打开并以.jpg
格式导出它,质量为75%,以使其适合Ask Ubuntu的2.1 MB限制。 导出的文件如下所示:
注意在开始时的9秒延迟。 grub中“正在加载初始ramdisk …”消息的“正常”延迟为7秒,现在大约为10秒。 额外的时间可能归因于systemd-bootchart开销。
编辑2:RAM和cgroups
根据RAM
注释(请求)和/var/log/syslog
中的cgroups
包含在此编辑中。
free -m
输出:
$ free -m total used free shared buff/cache available Mem: 7843 3167 820 1574 3854 2740 Swap: 7999 4 7995
请注意,SWAP仅用于测试OOM Killer
并且可以删除。 事实上,从技术上讲,它首先不应该在SSD上。
grep cgroup < /var/log/syslog.1
输出grep cgroup < /var/log/syslog.1
:
$ grep cgroup < /var/log/syslog.1 Dec 24 15:22:50 dell kernel: [ 0.000000] Initializing cgroup subsys cpuset Dec 24 15:22:50 dell kernel: [ 0.000000] Initializing cgroup subsys cpu Dec 24 15:22:50 dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct Dec 24 15:22:50 dell kernel: [ 0.011642] Initializing cgroup subsys io Dec 24 15:22:50 dell kernel: [ 0.011645] Initializing cgroup subsys memory Dec 24 15:22:50 dell kernel: [ 0.011651] Initializing cgroup subsys devices Dec 24 15:22:50 dell kernel: [ 0.011653] Initializing cgroup subsys freezer Dec 24 15:22:50 dell kernel: [ 0.011655] Initializing cgroup subsys net_cls Dec 24 15:22:50 dell kernel: [ 0.011657] Initializing cgroup subsys perf_event Dec 24 15:22:50 dell kernel: [ 0.011659] Initializing cgroup subsys net_prio Dec 24 15:22:50 dell kernel: [ 0.011662] Initializing cgroup subsys hugetlb Dec 24 15:22:50 dell kernel: [ 0.011664] Initializing cgroup subsys pids Dec 24 15:22:50 dell kernel: [ 6.204710] cgroup: new mount options do not match the existing superblock, will be ignored Dec 24 15:23:33 dell kernel: [ 0.000000] Initializing cgroup subsys cpuset Dec 24 15:23:33 dell kernel: [ 0.000000] Initializing cgroup subsys cpu Dec 24 15:23:33 dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct Dec 24 15:23:33 dell kernel: [ 0.010846] Initializing cgroup subsys io Dec 24 15:23:33 dell kernel: [ 0.010849] Initializing cgroup subsys memory Dec 24 15:23:33 dell kernel: [ 0.010855] Initializing cgroup subsys devices Dec 24 15:23:33 dell kernel: [ 0.010857] Initializing cgroup subsys freezer Dec 24 15:23:33 dell kernel: [ 0.010860] Initializing cgroup subsys net_cls Dec 24 15:23:33 dell kernel: [ 0.010861] Initializing cgroup subsys perf_event Dec 24 15:23:33 dell kernel: [ 0.010864] Initializing cgroup subsys net_prio Dec 24 15:23:33 dell kernel: [ 0.010867] Initializing cgroup subsys hugetlb Dec 24 15:23:33 dell kernel: [ 0.010868] Initializing cgroup subsys pids Dec 24 15:23:33 dell kernel: [ 7.338815] cgroup: new mount options do not match the existing superblock, will be ignored Dec 24 15:45:25 dell kernel: [ 0.000000] Initializing cgroup subsys cpuset Dec 24 15:45:25 dell kernel: [ 0.000000] Initializing cgroup subsys cpu Dec 24 15:45:25 dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct Dec 24 15:45:25 dell kernel: [ 0.010844] Initializing cgroup subsys io Dec 24 15:45:25 dell kernel: [ 0.010847] Initializing cgroup subsys memory Dec 24 15:45:25 dell kernel: [ 0.010853] Initializing cgroup subsys devices Dec 24 15:45:25 dell kernel: [ 0.010855] Initializing cgroup subsys freezer Dec 24 15:45:25 dell kernel: [ 0.010857] Initializing cgroup subsys net_cls Dec 24 15:45:25 dell kernel: [ 0.010859] Initializing cgroup subsys perf_event Dec 24 15:45:25 dell kernel: [ 0.010861] Initializing cgroup subsys net_prio Dec 24 15:45:25 dell kernel: [ 0.010864] Initializing cgroup subsys hugetlb Dec 24 15:45:25 dell kernel: [ 0.010866] Initializing cgroup subsys pids Dec 24 15:45:25 dell kernel: [ 5.977461] cgroup: new mount options do not match the existing superblock, will be ignored Dec 24 16:09:31 dell kernel: [ 0.000000] Initializing cgroup subsys cpuset Dec 24 16:09:31 dell kernel: [ 0.000000] Initializing cgroup subsys cpu Dec 24 16:09:31 dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct Dec 24 16:09:31 dell kernel: [ 0.010848] Initializing cgroup subsys io Dec 24 16:09:31 dell kernel: [ 0.010852] Initializing cgroup subsys memory Dec 24 16:09:31 dell kernel: [ 0.010858] Initializing cgroup subsys devices Dec 24 16:09:31 dell kernel: [ 0.010860] Initializing cgroup subsys freezer Dec 24 16:09:31 dell kernel: [ 0.010862] Initializing cgroup subsys net_cls Dec 24 16:09:31 dell kernel: [ 0.010864] Initializing cgroup subsys perf_event Dec 24 16:09:31 dell kernel: [ 0.010866] Initializing cgroup subsys net_prio Dec 24 16:09:31 dell kernel: [ 0.010870] Initializing cgroup subsys hugetlb Dec 24 16:09:31 dell kernel: [ 0.010871] Initializing cgroup subsys pids Dec 24 16:09:31 dell kernel: [ 6.663158] cgroup: new mount options do not match the existing superblock, will be ignored Dec 24 18:00:44 dell kernel: [ 0.000000] Initializing cgroup subsys cpuset Dec 24 18:00:44 dell kernel: [ 0.000000] Initializing cgroup subsys cpu Dec 24 18:00:44 dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct Dec 24 18:00:44 dell kernel: [ 0.011644] Initializing cgroup subsys io Dec 24 18:00:44 dell kernel: [ 0.011647] Initializing cgroup subsys memory Dec 24 18:00:44 dell kernel: [ 0.011654] Initializing cgroup subsys devices Dec 24 18:00:44 dell kernel: [ 0.011656] Initializing cgroup subsys freezer Dec 24 18:00:44 dell kernel: [ 0.011658] Initializing cgroup subsys net_cls Dec 24 18:00:44 dell kernel: [ 0.011660] Initializing cgroup subsys perf_event Dec 24 18:00:44 dell kernel: [ 0.011662] Initializing cgroup subsys net_prio Dec 24 18:00:44 dell kernel: [ 0.011665] Initializing cgroup subsys hugetlb Dec 24 18:00:44 dell kernel: [ 0.011667] Initializing cgroup subsys pids Dec 24 18:00:44 dell kernel: [ 6.388658] cgroup: new mount options do not match the existing superblock, will be ignored Dec 24 18:01:33 dell kernel: [ 0.000000] Initializing cgroup subsys cpuset Dec 24 18:01:33 dell kernel: [ 0.000000] Initializing cgroup subsys cpu Dec 24 18:01:33 dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct Dec 24 18:01:33 dell kernel: [ 0.010850] Initializing cgroup subsys io Dec 24 18:01:33 dell kernel: [ 0.010854] Initializing cgroup subsys memory Dec 24 18:01:33 dell kernel: [ 0.010860] Initializing cgroup subsys devices Dec 24 18:01:33 dell kernel: [ 0.010862] Initializing cgroup subsys freezer Dec 24 18:01:33 dell kernel: [ 0.010864] Initializing cgroup subsys net_cls Dec 24 18:01:33 dell kernel: [ 0.010866] Initializing cgroup subsys perf_event Dec 24 18:01:33 dell kernel: [ 0.010868] Initializing cgroup subsys net_prio Dec 24 18:01:33 dell kernel: [ 0.010871] Initializing cgroup subsys hugetlb Dec 24 18:01:33 dell kernel: [ 0.010873] Initializing cgroup subsys pids Dec 24 18:01:34 dell kernel: [ 12.036550] cgroup: new mount options do not match the existing superblock, will be ignored
请注意,此日志包含多个引导。
编辑3 – 速度提高。
在实施了Q&A答案之后,我写了( 如何设置’rm’命令的密码? ),其中包装脚本密码保护rm
命令,启动速度加倍。
这是新图:
我不认为碎片整理是你的问题,但你可以做到这一点……
在terminal
……
-
输入
man update-initramfs
#以了解有关此命令的更多信息。 -
然后输入
sudo update-initramfs -c
#从头开始创建一个新文件。 -
然后输入
reboot