Eu tenho um eeePC 900a: ele tem um flash de 8 GB como disco e apenas 1 GB de RAM. A distribuição Linux instalada nele é ArchLinux.
Quando o sistema fica sem memória, ele fica extremamente sem resposta: leva alguns segundos / minutos para fazer coisas como mudar para TTY1 ou até mover o ponteiro do mouse. Às vezes, parece que o sistema congela: três nossos atrás deixei em paz e nada mudou até agora.
Prefiro evitar criar uma partição / arquivo de troca neste eeePC, já que o disco já é muito pequeno e também porque as muitas gravações no espaço de troca reduziriam muito a vida útil do cartão flash. Além disso, acho que um arquivo / partição de swap apenas moveria o problema, em vez de resolvê-lo definitivamente.
O kernel não deveria matar alguns aplicativos aleatórios quando ficar sem memória? Por que falha (ou leva anos) em fazer isso?
Há alguns meses / anos, eu já tentei aprofundar isso, mas não consegui encontrar nada que realmente funcionasse ...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
. Isso definitivamente resolveria o meu problema. Mas espere, o kernel não deveria fazer isso (e de uma maneira muito melhor que o meu script)? Por que não está fazendo o seu trabalho?