Usando o --load-average no Gentoo para evitar OOM Kill

Publicado por Xerxes em 14/02/2026

[ Hits: 77 ]

 


Usando o --load-average no Gentoo para evitar OOM Kill



O relato

Ao tentar compilar o COSMIC DE, meu Gentoo congelou. Mas é aquilo... Quem nunca passou por um hard freeze compilando no Gentoo não usou Gentoo de verdade!

Brincadeiras de lado, isso ocorreu mesmo com Ryzen 7, 16 threads e 32GB de RAM. Mas a culpa foi minha por reservar 16GB em tmpfs para o Portage. Pedindo explicações à Gemini, acho que cheguei a uma conclusão.

Ao compilar algo pesado (como sys-devel/rust ou qt-webengine), o uso de RAM explode ou o disco não dá conta de escrever os arquivos temporários (especialmente em HDDs ou SSDs via USB). O resultado? O mouse congela, o áudio trava e você é obrigado a reiniciar o PC no botão.

Isso acontece porque o parâmetro --jobs é "cego": ele lança 16 processos simultâneos sem se importar se o sistema está engasgando.

A solução

De acordo com a wiki do Gentoo, o comando make possui uma "válvula de segurança" pouco usada: o --load-average.

Enquanto o --jobs define quantos processos podem rodar, o --load-average define quando eles podem ser iniciados. Ele instrui o Portage a não iniciar novas tarefas se a "Carga do Sistema" (Load Average) estiver acima de um valor seguro.

No Linux, o "Load Average" sobe não apenas por uso de CPU, mas também por I/O Wait (processos parados esperando o disco ler/gravar). Se o seu HD gargalar, a carga sobe. O --load-average percebe isso e pausa a criação de novos compiladores até o disco "respirar".

Como usar

Edite seu arquivo /etc/portage/make.conf.

A recomendação geral é manter o --jobs próximo ao número de threads do seu processador (para velocidade) e o --load-average próximo a esse mesmo número (para estabilidade).

Exemplo Prático (Para um CPU de 16 Threads / 8 Cores):

# --jobs 12: Usa até 12 threads simultâneas (75% da CPU).
# --load-average 14: Se a carga do sistema passar de 14.0, PAUSA novos processos.
MAKEOPTS="--jobs 12 --load-average 14"

Se você confia na sua refrigeração e quer usar 100% do processador, mas sem travar por causa do disco:

# Tenta usar tudo, mas freia se o sistema começar a engasgar
MAKEOPTS="--jobs 16 --load-average 16"

Ao usar --load-average, o tempo total de compilação praticamente não muda, mas a responsividade do sistema melhora drasticamente. O Portage passa a gerenciar os picos de uso de RAM e Disco automaticamente, evitando o temido OOM Kill ou travamento total.

Então, após ajeitar e dar um "emerge --resume" tudo foi de boa.

Essa dica é massa para quem compila em tmpfs (RAM) ou utiliza HDs mecânicos.

Outras dicas deste autor

KDE 4.1.1 no Slackware Linux 12.1 em 3 passos

Leitor de Mangás para Android

Xfburn: gravador de CD leve e gráfico

Removendo jogos e bloatware do KDE no Gentoo

Usando outros delimitadores em sed

Leitura recomendada

Leitor Biométrico no Thinkpad X230 com openSUSE 13.2 - Configuração

Aumentando a área de SWAP

Tirando a barra gráfica do Grub no Conectiva Linux 10

Lubuntu 12.10 sem áudio pós-instalação [Resolvido]

Alterando o ícone do GDM na tela de login do Ubuntu 10.04

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts