< Improving performance (Português)

Improving performance (Português)/Boot process (Português)

Melhorar o desempenho de inicialização de um sistema pode fornecer tempos de espera de inicialização reduzidos e um meio de aprender mais sobre como certos arquivos e scripts do sistema interagem entre si. Este artigo tenta agregar métodos sobre como melhorar o desempenho de inicialização de um sistema Arch Linux.

Status de tradução: Esse artigo é uma tradução de Improving performance/Boot process. Data da última tradução: 2020-04-09. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Analisando o processo de inicialização

Usando systemd-analyze

systemd fornece uma ferramenta chamada systemd-analyze que pode ser usada para mostrar detalhes de tempo sobre o processo de inicialização, incluindo um gráfico svg mostrando as unidades aguardando suas dependências. Você pode ver quais arquivos da unidade estão causando uma lentidão no processo de inicialização. Você pode otimizar seu sistema adequadamente.

Para ver quanto tempo foi gasto no kernelspace e no espaço do usuário na inicialização, basta usar:

$ systemd-analyze
Dica: Se você inicializar via UEFI e usar um gerenciador de inicialização que implemente a Boot Loader Interface do systemd (que atualmente systemd-boot e GRUB do), systemd-analyze também pode mostrar quanto tempo foi gasto no firmware EFI e no próprio carregador de inicialização.

Para listar os arquivos da unidade iniciada, classificados pelo tempo que cada um deles levou para iniciar:

$ systemd-analyze blame

Em alguns pontos do processo de inicialização, as coisas não podem continuar até que uma determinada unidade seja bem-sucedida. Para ver quais unidades se encontram nesses pontos críticos da cadeia de inicialização, faça:

$ systemd-analyze critical-chain

Você também pode criar um arquivo SVG que descreva graficamente seu processo de inicialização, semelhante a Bootchart:

$ systemd-analyze plot > plot.svg

Consulte systemd-analyze(1) para detalhes.

Usando bootchart2

Você também pode usar uma versão do bootchart para visualizar a sequência de inicialização. Como você não pode colocar um segundo init na linha de comando do kernel, não poderá usar nenhuma das configurações padrão do bootchart. No entanto, o pacote do AUR vem com um serviço systemd não documentado. Depois de instalar o bootchart2, faça:

# systemctl enable bootchart2

Você pode visualizar os resultados abrindo ou, se desejar mais recursos, iniciando:

$ pybootchartgui -i

Leia a documentação do bootchart2 para obter mais detalhes sobre o uso desta versão do bootchart.

Compilando um kernel personalizado

A compilação de um kernel personalizado pode reduzir o tempo de inicialização e o uso de memória. Embora com a padronização da arquitetura de 64 bits e a natureza modular do kernel Linux, esses benefícios não sejam tão grandes quanto o esperado. Consulte Kernel#Compilação para mais informações.

Initramfs

Em uma abordagem semelhante a #Compilando um kernel personalizado, o initramfs pode ser reduzido. Uma maneira simples é incluir o hook do mkinitcpio. Se você quiser ir além disso, consulte Minimal initramfs.

Início antecipado para serviços

Um recurso central do systemd é o D-Bus e a ativação do soquete. Isso faz com que os serviços sejam iniciados quando são acessados pela primeira vez e geralmente é uma coisa boa. No entanto, se você souber que um serviço (como ) sempre será iniciado durante a inicialização, o tempo total de inicialização poderá ser reduzido iniciando-o o mais cedo possível. Isso pode ser alcançado (se o arquivo de serviço estiver configurado para ele, o que na maioria dos casos é) emitindo:

# systemctl enable upower

Isso fará com que o systemd inicie o UPower o mais rápido possível, sem causar corridas com a ativação do D-Bus ou soquete.

Rotação escalonada

Alguns implementos de hardware rotação escalonada (ou staggered spin-up), o que faz com que o sistema operacional examine as interfaces ATA em série, o que pode girar as unidades um a um e reduzir o consumo de energia de pico. Isso diminui a velocidade de inicialização e, na maioria dos hardwares de consumo, não oferece benefícios, pois as unidades já irão girar imediatamente quando a energia for ligada. Para verificar se SSS está sendo usado:

# dmesg | grep SSS

Se não foi usado durante a inicialização, não haverá saída.

Para desativá-lo, adicione parâmetro do kernel libahci.ignore_sss=1.

Montagem dos sistemas de arquivos

Graças ao hook fsck do mkinitcpio, você pode evitar uma remontagem possivelmente cara da partição raiz alterando para na linha do kernel: as opções podem ser definidas com . A entrada deve ser removida do arquivo , caso contrário, o continuará tentando aplicar essas configurações. Como alternativa, pode-se tentar mascarar essa unit.

Se o btrfs estiver em uso para o sistema de arquivos raiz, não há necessidade de um fsck em cada inicialização, como outros sistemas de arquivos. Se for esse o caso, o gancho fsck de mkinitcpio pode ser removido. Você também pode mascarar o ou pedir para não fsck o sistema de arquivos raiz na linha de comando do kernel usando . Sem o hook fsck de mkinitcpio, o systemd ainda fsck qualquer sistema de arquivos relevante com o

Você também pode remover os sistemas de arquivos de API do , pois o systemd os montará (consulte pacman -Ql systemd | grep '\.mount$' para uma lista). Não é incomum que os usuários tenham uma entrada /tmp transferida do sysvinit, mas você deve ter notado no comando acima que o systemd já cuida disso. Portanto, ele pode ser removido com segurança.

Outros sistemas de arquivos como ou partição de sistema EFI podem ser montados com unidades de montagem personalizadas. Adicionar às opções de montagem armazenará em buffer todo o acesso a essa partição e vai executar fsck e mount no primeiro acesso, reduzindo o número de sistemas de arquivos que eles devem fsck/montar durante o processo de inicialização.

Menos saída durante a inicialização

Para alguns sistemas, particularmente aqueles com um SSD, o desempenho lento do TTY é realmente um gargalo e, portanto, menos saída significa uma inicialização mais rápida. Consulte o artigo Inicialização silenciosa para obter sugestões.

Suspensão para RAM

A melhor maneira de reduzir o tempo de inicialização é não inicializar. Considere suspender seu sistema para a RAM.

gollark: I don't like the crystal growth chamber.
gollark: Nope, not adding that.
gollark: You mean AE2 stuff?
gollark: What's "advanced stuff ae2"?
gollark: I'll leave the committee to work on it.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.