Suponho que você esteja no CentOS 7+ ou no Ubuntu 15.04+, que vêm com o systemd. O Systemd tem ótimas ferramentas para descobrir quanto tempo o sistema demorou para inicializar junto com algumas visualizações para ver o motivo.
Para a saída mais básica, basta executar systemd-analyze
e você terá um bom resumo, assim
Startup finished in 853ms (kernel) + 3min 50.610s (initrd) + 10.345s (userspace) = 4min 1.809s
Isso pode dizer quanto tempo sua última inicialização ocorreu depois que o systemd foi iniciado. Isso não leva em conta a inicialização do BIOS / hardware ou os tempos limite do GRUB, mas deve ser preciso para o tempo real de inicialização do SO.
Se você quiser descobrir por que o SO está demorando tanto, experimente systemd-analyze blame
, que fornecerá um gráfico de serviços da mais longa para a mais curta. por exemplo, do meu sistema
3min 49.219s systemd-cryptsetup@luks\x2d62611c1c\x2d74ab\x2d4be9\x2d8990\x2d41c0fd863b5a.service
5.315s plymouth-quit-wait.service
3.084s systemd-udev-settle.service
2.275s plymouth-start.service
2.256s docker.service
1.819s powertop.service
778ms firewalld.service
676ms dev-mapper-fedora\x2droot.device
621ms abrtd.service
493ms lvm2-monitor.service
Parece que 3 dos 4 minutos necessários para a minha inicialização do meu laptop é porque eu tenho uma unidade criptografada.
Finalmente, você pode ver uma cadeia de eventos que são considerados "críticos" para obter o sistema inicializado. A partir da página de manual , significa crítico "cadeia de unidades de tempo crítico". Isso ocorre porque o systemd paralela muitos serviços. Isso listará as unidades que precisam aguardar outra unidade e quanto tempo demorou para começar.
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 @10.336s
└─multi-user.target @10.323s
└─docker.service @4.900s +2.256s
└─network.target @4.868s
└─wpa_supplicant.service @4.828s +14ms
└─dbus.service @3.753s
└─basic.target @3.749s
└─sockets.target @3.749s
└─docker.socket @3.741s +6ms
└─sysinit.target @3.737s
└─systemd-update-utmp.service @3.726s +10ms
└─auditd.service @3.713s +9ms
└─systemd-tmpfiles-setup.service @3.617s +82ms
└─fedora-import-state.service @3.568s +36ms
└─local-fs.target @3.560s
└─run-user-42.mount @5.753s
└─local-fs-pre.target @383ms
└─systemd-tmpfiles-setup-dev.service @301ms +80ms
└─kmod-static-nodes.service @268ms +10ms
└─system.slice
└─-.slice
Você também pode fazer algumas coisas legais exportando sua árvore de inicialização para uma imagem para enviá-la por e-mail ou plotá-la com svg. Veja a man page para mais detalhes ou este relacionado pergunta para mais alguns detalhes.