とにかくファイルの断片化はそれほど重要ではないはずのSSDにいますが、grubの「loading initial 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を含むフルサイズHDDがあるため、initrd.img
一般的に、SSDだけではありません。現在のブートセッションはmSata SSDからのものですが、SATA IIIバス上にあるフルサイズドライブとは異なり、SATA IIの速度に制限されています。
systemd
ブートチャート以下のコメントに従って、grubカーネルパラメーターを次のように変更することで生成されるsystemd-bootchartを含めました。
GRUB_CMDLINE_LINUX_DEFAULT="splash vt.handoff=7 kaslr init=/lib/systemd/systemd-bootchart"
ブートチャートは/run/log/bootchart-20161224-1801.svg
に保存されます。 gimp
を使用して、Ask Ubuntuの2.1 MBの制限に適合するように75%品質で.jpg
形式で開いてエクスポートする必要がありました。エクスポートされたファイルは次のとおりです。
開始時に9秒の遅延に注意してください。 grubの「Loading initial ramdisk ...」メッセージの7秒の「通常の」遅延は約10秒になりました。 systemd-bootchartオーバーヘッドに起因する可能性が高い余分な時間。
以下のコメント(リクエスト)に従って、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
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
このログには複数のブートが含まれていることに注意してください。
Q&Aの回答を実装した後、ラッパースクリプトのパスワードがrm
コマンドを保護する( 「rm」コマンドのパスワードを設定するにはどうすればよいですか? )と書きました。ブート速度は2倍になりました。
新しいグラフは次のとおりです。
デフラグはあなたの問題ではないと思いますが、あなたはこれを行うことができます...
terminal
...
このコマンドの詳細については、man update-initramfs
#と入力してください。
次にSudo update-initramfs -c
#と入力して、新しいファイルを最初から作成します。
次にreboot
と入力します