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

Publicado por Xerxes em 14/02/2026

[ Hits: 105 ]

 


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

Ajustando data e hora com NTP

Deixando o Firefox em português

VirtualBox sem conexão Wireless [Resolvido]

Couldn't register with accessibility bus: Did not receive a reply [Resolvido]

[Resolvido] Controle Xbox 360 não funciona

Leitura recomendada

Alta Disponibilidade

Erro Initramfs unpacking failed: Decoding failed [Resolvido]

Lilo no Ubuntu

Trocando tela de login do Fedora 17

Restaurando as configurações de fábrica/padrões do Cinnamon

  

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