Tempo do boot usando systemd - ferramentas de análise

Iniciado por druidaobelix, 20 de Outubro de 2016, 00:34

tópico anterior - próximo tópico

druidaobelix

Fornecendo elementos para que o Fórum possa analisar.

É recorrente em fóruns técnicos Linux posts "reclamando" que o tempo gasto pelo sistema para executar o boot estaria maior do que era anteriormente ou de maneira mais geral que "o boot está demorado".

Os posts feitos dessa forma representam uma avaliação subjetiva, que certamente pode ser verdadeira, porém não trazem em si nenhum elemento técnico que possibilite de forma concreta a análise da questão.

Nada há que se possa fazer para auxiliar o usuário a partir dessa simples afirmativa. É necessário que junto com a afirmativa venha ao tópico elementos mínimos que possbilitem a análise.

Apenas contextualizando para quem eventualmente não esteja familiarizado e de uma forma simples que permita o entendimento de todos, sem a pretensão de aprofundar tecnicamente o tema, o mencionado "systemd" do título, substituto do "init", é uma forma nova utilizada pelo Ubuntu no boot do sistema a partir da versão 15 e sedimentada na versão 16.04 LTS (suporte de longo prazo).

Trata-se de uma forma diferente de fazer o boot, não linear, concorrentemente, procurando aproveitar-se dos modernos processadores que possuem vários núcleos (cores) admitindo paralelismo.Dessa forma várias tarefas ou serviços podem ser desencadeadas simultaneamente, em paralelo, o que, em tese, reduziria o tempo total do boot.

Evidentemente existem interdependências entre os vários serviços, se A depende de B que depende de C, logicamente A não pode ser iniciado antes que C seja concluído, mas é possível com vários serviços montar uma árvore cujas ramificações permitam alguma otimização e, com isso, reduzir o tempo total que seria gasto pelo boot do sistema.

Sempre que se abre um tópico no Fórum, principalmente quando a questão possa estar relacionada ao hardware do equipamento, convém que se forneça desde logo informações sobre a máquina, tais como:

a) marca e modelo, se disponível, podem auxiliar a encontrar uma solução;

b) um link onde se possa consultar a especificação mais completa do equipamento;

c) cpu, ram, motherboard e gpu;

d) versão/sabor do Ubuntu que está sendo utilizado;

lsb_release -rd

e) kernel utilizado

uname -srvm

f) se possível, é adequado fornecer informações mais completas, o que pode ser feito através do software ferramenta inxi.

Para instalar o inxi:

sudo apt install inxi

Depois faça:

inxi -FxZ

Se conseguir instalar e postar o resultado do inxi no seu tópico, então as informações anteriores (c, d, e) são desnecessárias, pois já constam nele, além de outras valiosas, apenas ainda forneça a marca e modelo conforme o nome comercial utilizado pelo fabricante, o que ainda pode ajudar.

Note que quem está do lado de lá no Fórum não tem acesso ao seu equipamento, o que aumenta drasticamente a dificuldade de análise, portanto, só pode se basear nas corretas e completas informações que forem prestadas.

Feita a apresentação da máquina objeto onde se encontra o problema a ser analisado pelo Fórum, é momento então de também apresentar elementos que permitam avaliar de forma mais objetiva o "tempo de demora" do boot.

Claro que antes de mais nada certifique-se que o seu sistema está atualizado:


sudo apt update


sudo apt upgrade


Devem terminar sem erros os comandos acima.

Lento quanto? Quantifique para que não fique algo vago, assim eventualmente o Fórum poderá lhe ajudar.

Para que haja uma medida direta comparável e efetiva, altere a forma de logon para o modo automático:


Citar
--> Configurações do sistema/Contas de usuários/Opções de início de sessão/Início automático de sessão

Isso feito, reinicie o sistema para que ocorra o início automático desde o início do boot até a carga do desktop.

Importante: antes de fazer a medição do tempo de boot faça um boot inicial e em seguida mais dois reboots sem novas alterações para que o systemd "aprenda" certas características do sistema e faça as correções, portanto, a medição inicial pode ser distorcida se não fizer os reboots sucessivos.

Execute então os seguintes comandos e traga ao seu tópico os resultados:


systemd-analyze


systemd-analyze critical-chain


A seguir, faça a instalação do pacote pastebinit, o qual propiciará que se forneça informações extensas, as quais seria inadequado postar no tópico, sob pena de poluição visual do mesmo e desestímulo a que seja visto:

sudo apt install pastebinit

Ao ser executado juntamente com algum comando que extraia informações do sistema, sempre e apenas na forma de texto, pastebinit fornecerá uma url (endereço de internet) onde as informações possam ser consultadas.

Isso posto, no caso em questão, que objetiva analisar o tempo de boot, execute:

systemd-analyze --no-pager blame | pastebinit


dmesg | pastebinit


O primeiro comando acima fornecerá uma árvore dos processos e o segundo trata-se do tradicional dmesg que fornece um log do boot.

Copie a url fornececida pelo pastebinit e cole no seu tópico.

Adicionalmente, também como uma ferramenta útil à análise, execute:


systemd-analyze plot > plot.svg


No diretório onde for executado, geralmente na /home do sistema, será gerado o arquivo plot.svg

Disponibilize esse arquivo em algum serviço de compartilhamento, como por exemplo o Drive do Google, OneDrive da Microsoft, Dropbox, enfim, qualquer serviço de compartilhamento de onde possa ser baixado e que possa fornecer um link (url) que possa ser copiado e colado no seu tópico aqui no Fórum.

Apenas atente para que seja um serviço de compartilhamento que possa acessar o arquivo de forma fácil, sem a necessidade de cadastro, senhas e que tais, de forma a não desestimular os visitantes que se interessem pelo seu tópico e queiram consultar o referido arquivo.

Claro que você próprio pode e deve analisar esse conjunto de informações produzidos, à procura de algo que possa estar ocasionando a lentidão da carga do sistema e pontualmente chamando a atenção do Fórum para algum ponto específico.

Seguir esse conjunto de procedimentos é uma forma racional de melhorar a qualidade do seu tópico e, por consequência, aumentar a probabilidade de que mais pessoas se interessem pela questão e venham em seu auxílio.


referências:

Wikipédia - verbete systemd
https://pt.wikipedia.org/wiki/Systemd

UbuntuWiki
SystemdForUpstartUsers
https://wiki.ubuntu.com/SystemdForUpstartUsers

How To Use Journalctl to View and Manipulate Systemd Logs
https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

Improving performance/Boot process
https://wiki.archlinux.org/index.php/Improving_performance/Boot_process
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

lynxmedeiros

Parabéns Druidaobelix, pelo tópico, acho que todos que quiserem pedir auxílio no fórum e quiserem tirar alguma dúvida deveriam como você inteligentemente já escreveu colocar pelo menos:
a) marca e modelo, se disponível, podem auxiliar a encontrar uma solução;

b) um link onde se possa consultar a especificação mais completa do equipamento;

c) cpu, ram, motherboard e gpu;

d) versão/sabor do Ubuntu que está sendo utilizado;

Se pelo menos colocarem  essas características ajuda bastante.

Abraços.
Machine Dell:OptiPlex 7010 / Intel Core i5@ 3.20GHz / 4 Gb Ram
Graphics: Card: Intel Xeon E3-1200 Core processor Graphics Controller
Linux User  #616349

galactus

Parabéns pelo tópico!  Descobri aqui que o vilão do meu boot lento é o network Manager! 
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.