Aqui estão algumas coisas que você pode tentar, embora as soluções não sejam diretamente o que você pediu.
Como eu disse nos comentários, definir vm.swappiness=0
fará com que o kernel espere o máximo possível antes de usar o swap, e não o desligue completamente. Não tenho provas disso, mas acho que, ao definir vm.swappiness=0
, você está agravando o problema.
Você também pode criar um script que use swapon
e swapoff
para ativar uma partição de troca ou um arquivo de troca gerado por esse motivo específico ao acionar a hibernação. A maioria dos gerenciadores de janelas pode ser personalizada para executar scripts quando uma parte diferente é ativada, como, por exemplo, o botão de hibernação. Como fazer isso depende de qual gerenciador de janelas você usa.
Uma terceira opção é deixar a troca ativa o tempo todo e, em vez disso, diminuir a quantidade de RAM que pode ser usada antes que o gerenciador de OOM seja ativado e comece a matar processos. Isso é possível, mas não tenho ideia de como fazer isso.
Finalmente, considerando a quantidade de memória RAM atualmente, aumentar a quantidade de RAM em seu computador também é uma opção viável se você ainda não o tiver esgotado.