Eu geralmente gosto de usar o chrome, mas é o único software no meu Ubuntu que garante o congelamento do sistema operacional inteiro se for dado tempo suficiente para execução.
E em algumas ocasiões, eu literalmente não posso fazer nada a não ser uma reinicialização a frio. Se eu já tinha outro TTY aberto ( Alt + Ctrl + Fn ) então eu posso ou não ser capaz de mudar para ele para emitir killall chrome
, que irá corrigir o sistema operacional instantaneamente. Mesmo se eu já tivesse uma conexão SSH pendente. Às vezes, o cursor do mouse se moverá pela tela, mas absolutamente nada mais será responsivo. Às vezes nem o cursor do mouse.
De qualquer forma, descobri experimentalmente que a memória RAM acaba com o Chrome sendo usado; Alguns vazamentos de memória terríveis. Então, o que eu fiz para evitar que meu sistema operacional fique completamente congelado a ponto de não resgatar, é um pouco um DIY. Eu criei um script bash simples e instalei sob o crontab do meu usuário. Eu corro a cada minuto. Ele verifica a quantidade de RAM livre, e se for abaixo do meu limite definido (eu uso 200 MB), emite então killall chrome
, 3 vezes consecutivas (apenas no caso). Depois disso, você acaba com o cromo saindo da sua tela, mas aparece uma caixa de diálogo informando o que aconteceu, a quantidade de memória que você deixou e quanto você tem agora depois de recuperá-lo do chrome.
O script é o seguinte:
#!/bin/sh
#SETTINGS:
MIN_RAM_BEFORE_KILLING_CHROME_MB=200
#DATA COLLECTION:
FREE_RAM=$(free -mo | tr -s ' ' | cut -d ' ' -f 4 | awk '$0 == "free" {i=1;next};i && i++ <= 1')
echo "Free RAM: $FREE_RAM"
#ACTION:
if [ $FREE_RAM -lt $MIN_RAM_BEFORE_KILLING_CHROME_MB ]; then
echo "time to kill chrome...";
killall chrome &
sleep 1
killall chrome &
sleep 1
killall chrome &
FREE_RAM2=$(free -mo | tr -s ' ' | cut -d ' ' -f 4 | awk '$0 == "free" {i=1;next};i && i++ <= 1')
DISPLAY=:0 nohup zenity --info --text="Chrome was killed, because your RAM had only $FREE_RAM MB free.\nNow you have $FREE_RAM2 MB free." 2>/dev/null &
else
echo "Not yet. Will kill chrome when RAM goes under $MIN_RAM_BEFORE_KILLING_CHROME_MB.";
fi;
#INSTALLATION:
# crontab -u <username> -e
# then add this script
Então, quando eu alcanço um mínimo crítico na minha RAM, meu cromo é eliminado e vejo isso: