Como analisar o desempenho de inicialização do sistema Linux com Systemd

Um dos objetivos mais ideais quando gerenciamos sistemas operacionais Linux é que o boot destes seja o mais rápido possível para que todos os serviços e processos carreguem de forma otimizada e assim possamos começar a trabalhar logo nas múltiplas tarefas que devemos executar.

Quando usamos uma distribuição com systemd, temos a opção de analisar claramente como a inicialização está funcionando graças ao comando systemd-analyze e, portanto, hoje a Solvetic fará uma análise completa de como usar esta alternativa e assim detectar qualquer tipo de anomalia ou erro durante o processo de inicialização.

O que é systemd-analyzeEste comando é responsável por analisar e depurar o gerenciador do sistema em várias distribuições Linux.

1. Como usar systemd-analyse no Linux

Passo 1
Seu uso é simples, por exemplo, se quisermos obter informações gerais sobre o tempo de inicialização do sistema operacional, devemos executar o seguinte comando:

 systemd-analyse
Devemos executar isso sem nenhum argumento, desta forma ele irá listar informações sobre o tempo total que leva para iniciar cada serviço, incluindo o tempo usado pelo kernel, initrd e espaço do usuário durante a inicialização:

Passo 2
Se quisermos obter uma lista de todas as unidades em execução, ordenadas pelo tempo que levam para inicializar, em ordem decrescente, o subcomando de culpa é útil para acessar esta informação, iremos executar o seguinte;

 systemd-analise a culpa

etapa 3
Podemos verificar nestas informações que cada unidade é ordenada de acordo com o tempo gasto, isso é prático para tarefas de gerenciamento, pois foi simples saber qual serviço leva mais tempo para iniciar e analisar o problema especificamente sobre o mesmo.

Se o objetivo é ver uma árvore associada à cadeia de tempo crítica para um objetivo fixo ou uma lista de unidades específicas, devemos usar o parâmetro da cadeia crítica da seguinte forma:

 systemd-analyse critical-chain

Passo 4
Caso desejemos obter informações sobre um determinado serviço, devemos executar a seguinte sintaxe:

 systemd-analyze critical-chain "nome" .service
Para ver as informações de um host remoto através do protocolo ssh, devemos usar o sinalizador -H e indicar a diretiva user @ host desta forma.
 systemd-analyse blame -H [email protected] systemd-analise cadeia crítica -H [email protected]

2. Sintaxe geral de análise de Systemd


Para trabalhar com systemd-analyze de uma forma abrangente, podemos usar o seguinte comando para ver suas opções:
 man systemd-analyse
As opções disponíveis serão:

Esta opção imprime o tempo gerado no kernel antes que o espaço do usuário seja alcançado, o tempo gasto no disco RAM inicial (initrd) antes que o espaço do usuário do sistema normal seja alcançado, e o tempo que o nome do usuário do sistema espacial demorou para inicialize para obter acesso.

 systemd-analyse [OPÇÕES…] [hora]

Esta opção imprime uma lista de todas as unidades em execução, ordenadas pelo tempo que leva para inicializar, com esta informação será possível otimizar os tempos de boot.
 systemd-analyse [OPÇÕES…] culpa

Usando esta opção, uma árvore da cadeia de unidades críticas de tempo é impressa. O tempo após a unidade ser ativada ou iniciada será impresso após o caractere "@". O tempo que leva para a unidade iniciar será impresso após o caractere "+".
 systemd-analyse [OPÇÕES …] cadeia crítica [UNIDADE …]

Com este parâmetro, é impresso um gráfico SVG que indica em detalhes quais serviços do sistema foram iniciados e a que horas, destacando o tempo que eles gastaram na inicialização.
 systemd-analyse [OPÇÕES…] plot [> file.svg]

Com este valor, uma descrição do gráfico de dependência textual é gerada em formato de ponto para processamento posterior com a ferramenta de ponto GraphViz.
 systemd-analyse [OPÇÕES…] ponto [PADRÃO…] [> arquivo.dot]

Com esse valor, uma serialização legível pelo usuário do estado completo do servidor é gerada.
 systemd-analyse [OPÇÕES…] despejo

O uso deste parâmetro exibe uma lista de todos os diretórios nos quais os arquivos da unidade estão localizados.
 systemd-analyse [OPÇÕES …] caminhos de unidade [

Com log-vel, o nível de log atual do daemon systemd é impresso.
 systemd-analyse [OPTIONS…] nível de log [LEVEL]

Com o valor log-target, o destino do log atual do daemon systemd é impresso.
 systemd-analyze [OPÇÕES …] log-target [TARGET]

Com este valor, todas as chamadas do sistema armazenadas no conjunto de chamadas do sistema SET especificado ou todos os conjuntos conhecidos serão listados se nenhum conjunto for especificado. O argumento SET deve incluir o prefixo "@".
 systemd-analyse [OPTIONS…] syscall-filter [SET…]

Esta configuração carregará arquivos da unidade e imprimirá avisos se erros forem detectados na unidade.
 systemd-analyse [OPÇÕES …] verifique [ARQUIVOS …]

Assim, vimos como implementar e usar o systemd-analyze em distribuições Linux e, dessa forma, ter um controle muito mais direto sobre sua inicialização.

wave wave wave wave wave