Siga ZDNET: Adicione-nos como fonte preferencial no Google.
Principais conclusões da ZDNET
- Se a inicialização da sua máquina Linux estiver lenta, experimente esta ferramenta.
- Systemd-analyze oferece várias opções para ajudar.
- Qualquer máquina Linux com suporte ao systemd terá estes.
O Linux tem inúmeras ferramentas úteis que podem ajudá-lo a descobrir coisas que estão certas, coisas que estão erradas e tudo mais. Você pode personalizá-lo como quiser ou deixá-lo como está.
Em algum momento, você pode ficar curioso para saber o que está retardando o tempo de inicialização da sua máquina Linux. Embora possa parecer uma tarefa difícil, você ficaria surpreso com o quão fácil ela realmente é. Na verdade, o Linux possui uma ferramenta integrada para ajudá-lo a fazer exatamente isso.
Além disso: Como escolher a distribuição de desktop Linux certa para você
Se a sua distribuição Linux usa o sistema init systemd, você já tem o que precisa para resolver o problema de inicialização lenta e vou mostrar como usar a ferramenta.
análise do systemd
A ferramenta em questão faz parte do sistema init do systemd e é chamada de systemd-analyze. O que esta ferramenta faz é analisar e depurar o gerenciador de inicialização no Linux.
Se você simplesmente executasse o comando análise do systemdvocê verá resultados parecidos com estes:
A inicialização terminou em 6.669s (kernel) + 30.368s (espaço do usuário) = 37.037s
graphical.target alcançado após 27.479s no espaço do usuário
Como você pode ver acima, o tempo total de inicialização de uma das minhas máquinas é de 37,037 segundos, com 6,669 segundos para o kernel e 30,368 segundos para aplicativos do espaço do usuário. Depois, há o graphical.target alcançado (a tela de login) em 27,479 segundos.
Também: 8 coisas que você pode fazer com Linux que não pode fazer com MacOS ou Windows
Essa é uma informação muito boa, mas na verdade não nos ajuda muito. A boa notícia é que existem algumas opções importantes que podemos usar para nos ajudar a descobrir o que está acontecendo.
culpa
A primeira opção é a culpa, que lista todos os arquivos da unidade do systemd, mostrando o tempo que cada unidade levou para inicializar durante a última inicialização, do mais longo ao mais curto. A opção culpar é útil para identificar quais serviços estão causando atrasos na inicialização.
A opção de culpa é usada assim:
culpa do systemd-analyse
Os resultados serão mais ou menos assim:
57.158s apt-daily.service
20.879s apt-daily-upgrade.service
17.609s snapd.serviço
10.647s docker.serviço
7.217s snapd.seeded.serviço
4.772s fstrim.service
4.160s dev-sda2.device
3.824s motd-news.service
3.756s cloud-init-local.service
3.369s cloud-config.service
3.173s snap.lxd.activate.service
2.932s containerd.serviço
2.877s nuvem-final.serviço
2.677s systemd-udev-settle.service
2.498s cloud-init.serviço
2.125s networkd-dispatcher.service
2.051s man-db.service
Como você pode ver, apt-daily.service é a unidade do systemd que leva mais tempo. O que é essa unidade? A unidade apt-daily.service é responsável por verificar diariamente automaticamente atualizações de software em distribuições Linux baseadas em Debian.
Também: A razão mais importante pela qual você deveria usar Linux em casa
Embora você possa parar o apt-daily.service, eu não o recomendaria. Você pode percorrer a lista gerada pela culpa do systemd-analyze e ver se há serviços que você pode desativar de maneira confiável e segura para acelerar o tempo de inicialização.
cadeia crítica
A opção de cadeia crítica exibe a cadeia de unidades que retardaram criticamente o processo de inicialização. Esta opção ajuda a identificar gargalos na cadeia de dependências. Na saída, o tempo em que uma unidade se torna ativa é impresso após o caractere @, e o tempo que a unidade levou para iniciar é impresso após o caractere +.
A saída para cadeia crítica é mais ou menos assim:
gráfico.target @27.479s
└─multiusuário.alvo @27.478s
└─docker.service @16.830s +10.647s
└─containerd.service @13.891s +2.932s
└─dbus.service@13.869s
└─basic.target @13.796s
└─sockets.target@13.794s
└─snapd.socket @13.745s +44ms
└─sysinit.target@13.659s
└─cloud-init.service @11.149s +2.498s
└─systemd-networkd-wait-online.service @10.024s +1.118s
└─systemd-networkd.service @9.838s +180ms
└─network-pre.target @9.832s
└─cloud-init-local.service @6.073s +3.756s
└─systemd-remount-fs.service @1.434s +174ms
└─systemd-journald.socket @1.147s
└─system.slice @1.067s
└─-.fatia @1.067s
Como você pode ver, os dois serviços que podem estar causando gargalos neste sistema (uma máquina Ubuntu Server) são docker.service e containerd.service. Se eu quisesse acelerar o tempo de inicialização, poderia desabilitar esses serviços na inicialização e iniciá-los manualmente.
trama
Por fim, temos o plot, que gera um arquivo .svg (Scalable Vector Graphic) que representa visualmente o processo de inicialização e as dependências associadas. Depois que o arquivo for gerado, você poderá abri-lo em um navegador da web ou visualizador de imagens que suporte arquivos SVG.
O comando para isso se parece com:
gráfico de análise do systemd > boot.svg
Você encontrará então o arquivo .svg no diretório de trabalho atual. Eu sugeriria abrir o arquivo em um navegador da web porque a maioria dos navegadores suporta o formato do arquivo e a imagem pode ser bastante grande.
O arquivo de imagem pode ser enorme.
Jack Wallen/ZDNET
Também: Como executar um aplicativo do Windows no Linux com Wine
Como você pode ver no meu exemplo, em cerca de 18 segundos é quando a maioria dos aplicativos e serviços começa a inicializar.
A ferramenta systemd-analyze é útil para se ter por perto. Com ele, você pode começar a solucionar problemas que fazem com que o sistema inicialize mais lentamente do que o esperado.













