Quanto tempo leva para o seu sistema Linux inicializar?
Quando você inicializa seu sistema, ele passa por uma sequência de eventos antes de apresentar a tela de login. Você já verificou quanto tempo seu sistema leva para inicializar? Geralmente, tudo ocorre em segundos ou alguns minutos, mas não sabemos a hora exata. Às vezes, por alguns motivos, pode ser necessário descobrir o tempo exato que o sistema leva para inicializar. Independentemente do motivo pelo qual você deseja saber, existe um utilitário systemd-analyze que pode informar o tempo exato que seu sistema Linux leva para inicializar.
Embora você possa usar um relógio ou cronômetro para monitorar esse tempo quando o sistema inicia a inicialização, isso não é viável para todas as situações, especialmente para servidores em execução que dificilmente podem ser reinicializados. Por exemplo, se você tiver um servidor executando serviços críticos e precisar descobrir quanto tempo seu sistema leva para inicializar. Neste caso, é necessário reinicializar o servidor, o que não pode ser possível sempre.
Neste artigo, você aprenderá quanto tempo seu sistema Linux leva para inicializar e como reduzir esse tempo se ele estiver inicializando lentamente.
Nota:
- O procedimento discutido neste artigo foi testado no Ubuntu 20.04 LTS. O mesmo procedimento pode ser realizado em qualquer distribuição Linux com o systemd habilitado.
- Para abrir o Terminal de linha de comando, use o atalho de teclado Ctrl+Alt+T.
O que é análise do systemd?
Systemd-analyze é uma ferramenta que pode ser usada para aprender as estatísticas da última inicialização do sistema. Com a ferramenta systemd-analyze, você pode encontrar informações sobre quanto tempo o sistema demorou para inicializar e também quanto tempo cada unidade demorou para inicializar. Felizmente, você não precisa instalar esta ferramenta, pois é uma ferramenta integrada do systemd. Você pode verificar isso usando o seguinte comando no Terminal:
which systems-analyze
A saída exibirá o caminho completo do comando executável.
Encontrando o tempo que o sistema leva para inicializar
Para descobrir o tempo que o sistema leva para inicializar, simplesmente digite system-analyze sem nenhum argumento de linha de comando no Terminal:
systemd-analyze
Quando você executa o comando acima, a ferramenta systemd-analyze calcula o tempo que o sistema leva até que a inicialização seja concluída, dividido em kernel e espaço do usuário.
Como você pode ver na imagem acima, o tempo total de inicialização do nosso sistema é de 32.378 s. segundos e é dividido em:
- Núcleo: 6.074s
- Espaço do usuário: 26.304s
Investigar/solucionar problemas de inicialização lenta
Se o tempo de inicialização for maior, você precisará descobrir qual serviço está retardando o processo de inicialização. Você pode encontrá-lo usando o comando systemd-analyze culpa . Este comando lista todos os serviços em execução que foram iniciados no momento da inicialização, juntamente com o tempo que demoraram. Com essas informações, você pode otimizar o tempo de inicialização do sistema.
Emita o seguinte comando no Terminal para descobrir qual serviço é o culpado pelo processo de inicialização lento:
sudo systemd-analyze blame
Este comando lista os serviços iniciados no momento da inicialização junto com o tempo que cada serviço levou para inicializar. A lista é classificada pelo tempo decorrido em ordem decrescente.
A lista de culpas pode ser bastante longa; normalmente, as primeiras 10 entradas são suficientes para encontrar os serviços que demoram muito. Portanto, canalize a saída do comando acima para o comando “head” da seguinte forma:
sudo systemd-analyze blame | head
Você também pode imprimir a saída na forma de uma árvore da cadeia de eventos de tempo crítico. Emita o seguinte comando no Terminal para fazer isso:
systemd-analyze critical-chain
Na saída, você verá uma cadeia de eventos classificados pela hora (quando o serviço foi ativado) em ordem decrescente. O valor após o caractere “@ ” em cada evento é o horário em que o serviço ficou ativo. Já o valor após o caractere “+” em cada unidade mostra o tempo que o serviço levou para iniciar.
A partir da saída recebida dos comandos acima, você pode descobrir facilmente qual serviço demora mais para iniciar e, em troca, faz com que o sistema inicialize lentamente. Comece do início e desative os serviços que demoraram mais para iniciar, desde que não sejam necessários para iniciar na inicialização. Além disso, desative todos os serviços que, embora demorem menos, não são necessários na inicialização, pois também afetam o tempo de inicialização do sistema.
Para desabilitar qualquer serviço, use a seguinte sintaxe:
sudo systemctl disable service-name
Isso é tudo que há para fazer! Neste artigo, você aprendeu como usar a ferramenta integrada do systemd para descobrir quanto tempo seu sistema leva para inicializar. Se a inicialização demorar mais, você também pode encontrar os serviços responsáveis por isso e desativá-los para melhorar o tempo de inicialização. No entanto, observe que alguns serviços padrão são necessários para iniciar na inicialização, portanto, não é recomendado desabilitar nenhum serviço sem saber o que ele realmente faz, caso contrário, você poderá ter problemas.