Eu estou em um SSD onde a fragmentação do arquivo não deve importar muito de qualquer maneira, mas notei que a mensagem "carregando o ramdisk inicial ..." no grub está demorando mais do que eu acho que deveria. Dura cerca de 7 segundos antes de Plymouth correr. Plymouth em si leva apenas cerca de 3 segundos (seria bom se tivesse começado mais cedo e durasse mais tempo). Então a tela lightdm / greeter aparece por 2 a 3 segundos.
Então eu fiz uma pequena experiência e executei filefrag -v /boot/init*
e notei que meu kernel 4.4.0-53 parece excessivamente fragmentado:
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
Estou curioso em saber como um initrd.img
fragmentado afetará o desempenho da inicialização. Vale a pena desfragmentar?
É claro que estou sempre aberto a sugestões para tornar initrd.img
menor e mais rápido também.
Observação: Além do SSD mSata e SSD em tamanho real, meu laptop tem um HD de tamanho normal que contém o Ubuntu 14.04, então estou interessado em desfragmentar initrd.img
em geral, não apenas para SSD . A sessão de inicialização atual é do SSD mSata, que é limitada a velocidades SATA II, ao contrário das unidades de tamanho normal que estão no barramento SATA III.
EDIT 1: - systemd
Gráfico de inicialização
Como comentado abaixo, incluímos o systemd-bootchart que é gerado modificando os parâmetros do kernel do grub com:
GRUB_CMDLINE_LINUX_DEFAULT="splash vt.handoff=7 kaslr init=/lib/systemd/systemd-bootchart"
O gráfico de inicialização é salvo em: /run/log/bootchart-20161224-1801.svg
. Eu tive que usar gimp
para abri-lo e exportá-lo no formato .jpg
com 75% de qualidade para torná-lo compatível com o limite de 2,1 MB do Ubuntu Ask. O arquivo exportado é mostrado abaixo:
Observe o atraso de 9 segundos no início. O atraso "normal" de 7 segundos para a mensagem "Carregando o disco inicial ..." no grub agora é de aproximadamente 10 segundos. O tempo extra provável atribuível à sobrecarga do systemd-bootchart .
EDIT 2: RAM e cgroups
Como por comentários (solicitações) abaixo, RAM
e cgroups
de /var/log/syslog
estão incluídos nesta edição.
Saída de free -m
:
$ free -m
total used free shared buff/cache available
Mem: 7843 3167 820 1574 3854 2740
Swap: 7999 4 7995
Observe que o SWAP é usado apenas para testar OOM Killer
e pode ser apagado. Tecnicamente, não deveria estar em um SSD, em primeiro lugar.
Saída de 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
Observe que esse log contém várias inicializações.
Editar 3 - Velocidade melhorada.
Após implementar a resposta Q & amp; A que escrevi ( Como posso configurar uma senha para o comando 'rm'? ) onde uma senha do script wrapper protege o comando rm
, a velocidade de inicialização dobrou.
Aqui está o novo gráfico: