O OOM Killer pode querer ajuda com programas travados
O OOM Killer é um recurso do kernel que decide se e quando fechar programas que estejam usando muita memória RAM a ponto de eventualmente esgotá-la e fazer com que o sistema trave (por falta de RAM/SWAP) ou fique extremamente lento (por ter que usar swap em disco). Para "medir" isso há um valor de sistema que é o vm.min_free_kbytes cujo valor normalmente é de cerca de 1% da memória RAM total. Pode parecer pouco mas esses cerca de 40MB (em sistemas com 4GB, por exemplo) é suficiente para as funções mais críticas do sistema e suficiente na maioria das vezes para mantê-lo "vivo" até que o OOM Killer feche o eventual executável mal-criado.
Mas pode ocorrer do OOM Killer "chegar atrasado" para fechar o que está provocando a saturação da máquina e, assim, a máquina simplesmente trava mesmo. Há um programa chamado earlyoom que trabalha como o "apressadinho" do sistema, prevenindo de forma mais antecipada o que o OOM Killer faz, uma espécie de garantia de que programas mal comportados sejam parados mas sem atingir, por exemplo, a interface gráfica do usuário (pelo menos numa primeira interação com o sistema), coisa que o OOM Killer costuma fazer, fazendo o usuário voltar à tela de autenticação para logar de novo.
Para instalar o programa:
sudo apt install earlyoom
Vamos configurar o mesmo, no Terminal:
sudo nano /etc/default/earlyoom
No arquivo padrão, as eventuais linhas que não tenham o # podem ser comentadas ou procure a linha que tem sem as aspas " EARLYOOM_ARGS " e coloque tudo isso mostrado abaixo (o comando é uma linha só):
EARLYOOM_ARGS="-r 0 -m 2 -M 256000 --prefer '^(Web Content|Isolated Web Co)$' --avoid '^(dnf|apt|pacman|rpm-ostree|packagekitd|gnome-shell|gnome-session-c|gnome-session-b|lightdm|sddm|sddm-helper|gdm|gdm-wayland-ses|gdm-session-wor|gdm-x-session|Xorg|Xwayland|systemd|systemd-logind|dbus-daemon|dbus-broker|cinnamon|cinnamon-sessio|kwin_x11|kwin_wayland|plasmashell|ksmserver|plasma_session|startplasma-way|sway|i3|xfce4-session|mate-session|marco|lxqt-session|openbox|cryptsetup)$'"
O arquivo vai ficar como na imagem abaixo:
Ctrl+o pra salvar e ctrl+x pra fechar. Depois disso:
sudo systemctl enable --now earlyoom
sudo systemctl start earlyoom
As flags da configuração significam:
- -r 0: Desativa os logs periódicos de rotina (só loga ações do matador de processos).
- -m 2: Aciona o aviso/ação quando a RAM disponível for menor que 2%.
- -M 256000: Limite absoluto em Kilobytes (aprox. 250 MB de RAM livre).
- --prefer: Dá prioridade de encerramento para as abas/processos do navegador (Web Content).
- --avoid: Protege a interface gráfica, gerenciadores de pacote e serviços vitais do sistema para não fechar seu ambiente de trabalho ou quebrar atualizações.
Com isso o seu sistema deverá ficar mais preparado para eventuais "acessos de RAM/SWAP" além do disponível.

Nenhum comentário:
Postar um comentário