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

Publicado por Xerxes em 14/02/2026

[ Hits: 479 ]

 


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

Pós-instalação do elementary OS - Customização em três passos

Jogando Brogue no Linux

Permitindo Conexões VPN PPTP no Linux Mint com UFW (GuFW)

Lista de comandos do DWM

Instalação rápida do Arch Linux via script aui

Leitura recomendada

Terminal do GNOME 3.8.3 com fundo transparente

Adicionando Ubuntu 16.04 ao Domínio Windows Server 2008 R2 com CID

Como alterar o DocumentRoot do Apache 2.2 no Ubuntu 10.04

Resolvendo bug do dbus-launch no Pidgin

VSFTPD - Criando diretório de usuário automaticamente

  

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