Fazer essa decisão depende do uso e do comportamento esperado do computador. Por exemplo:
-
Quais programas consomem mais memória no meu uso?
R: S.O., Navegador, suite office, programa específico de uso profissional, máquinas virtuais,
-
Esses programas podem gerar picos de uso de memória RAM?
Geralmente o navegador costuma ser uma bola de neve. O S.O. mantem o uso constante. Suite Office pode gerar picos dependendo do uso, geralmente não. Programa específico de uso profissional geralmente sim. Máquinas virtuais pode usar bastante RAM mas mantem uso constante.
-
Me importo que esses programas sejam fechados abruptamente (sem salvar o conteúdo)?
No uso recreativo, pode ser chato mas não é crítico que o programa seja fechado abruptamente, por exemplo o navegador ou um jogo. Mas quem usa suíte office ou software específico pode perder muito tempo com um programa sendo finalizado sem salvar.
-
No uso normal, sobra bastante RAM (digo +4G livre)?
Atualmente apenas de carregar o S.O. + algumas abas de navegação já pode chegar aos 4G de uso de RAM. Então um valor confortável é ter 8G de RAM total. Quem usa software específico pode ter outro uso normal, por exemplo alguém que rode máquinas virtuais pode necessitar de +2 a +4G por máquina virtual.
-
Necessito da função hibernar?
Hibernar pode ser uma boa para quem tem HD mecânico e pouca RAM. Pode piorar o boot para quem tem SSD e muita RAM. Pode ser necessário para usa notebook e precisa interromper o fluxo de trabalho e manter o computador no mesmo estado. Se for usar a hibernação, é obrigatório ter um swap no mínimo de 3/5 do valor da RAM e aconselhável que seja do mesmo tamanho da RAM.
Disso tira-se alguns resultados:
Uso recreativo? Então pode usar o earlyoom
Uso profissional? Não use o earlyoom e use SWAP
Pouca RAM? Use ZRam e adicione um SWAP de uns 4G
Muita RAM? Não precisa usar SWAP e o ZRAM só se quiser…
Picos de uso de RAM? Então começa a ser interessante usar o ZRAM e ter um swap pra não perder dados importantes.
Decidiu não usar SWAP? Então é muito recomendável usar o earlyoom para não travar o computador caso acabe a ram.
Precisa do SWAP pra hibernação? Então já terá um swap gigantesco para o uso “normal”.
Pode escolher entre usar SWAP em SSD ou HD? Use no SSD, pois o ideal do SWAP é que ele esteja sempre vazio e quando começar a usar já é sinal de alerta para salvar/fechar programas. Pra quem vai precisar usar frequentemente a hibernação (mais de uma vez por dia) e possui bastante RAM (8 GB ou mais), aí sim recomendo usar no HD pois cada vez que hibernar vai gravar mais de metade da RAM no disco e aí sim pode se tornar um ponto decisivo na durabilidade do SSD.
Não dá pra cobrir todos os usos com uma resposta única. O próprio usuário precisa decidir qual o comportamento esperado do hardware que ele tem, e conviver com as limitações do equipamento.
O earlyoom é um pacote que vc vai instalar e ele vai rodar como um serviço, monitorando o uso da RAM. Simples assim. Instala e verifica que o serviço foi habilitado pra rodar no boot, no máximo vai ter que dar um systemctl enable nele.
Quando se aproximar do fim do espaço livre, ele vai ranquear os processos que usam mais RAM e vai finalizar o processo que usa mais RAM. Isso evita que seja disparado a função do kernel OOM (Out of Memory) (Fim da Memória). A diferença é que essa função do kernel só entra em ação quando algum processo tenta alocar mais memória e não tem mais nada disponível. Ocorre então que o kernel congela TODOS os processos do userspace e começa a calcular qual processo vai matar. Mas como não tem mais memória disponível, esse processo é demorado (menos de um minuto, geralmente uns 15 segundos, mas pra um usuário impaciente é o suficiente pra ele desligar no botão). Assim que a função consegue liberar espaço de memória, o kernel retoma os processos restantes exatamente de onde parou e o computador volta a responder.
Ou seja, quando acabar a RAM vai ter processo finalizado na marra, com earlyoom ou sem ele. O earlyoom apenas faz isso um pouco antes do kernel evitando assim o processo traumático do kernel OOM.
Achei uma ótima ideia mas não cheguei a usar, pois uso swap e realizo ações antes de chegar nesse momento crítico, ou seja, só em caso de bug de programa ou página web que pode rapidamente alocar muita memória e disparar o fim de tudo (embora dá pra notar porque a velocidade de alocação de memória é muito mais rápida do que escrever os dados do swap no disco, causando já uma lentidão geral, acionando o OOM em poucos segundos, travar tudo uns poucos segundos, finalizar o processo com BUG e retornar o controle).