Tengo un eeePC 900a: tiene un flash de 8GB como disco y solo 1GB de RAM. La distribución de Linux instalada en él es ArchLinux.
Cuando el sistema se queda sin memoria, deja de responder: lleva varios segundos / minutos hacer cosas como cambiar a TTY1 o incluso mover el puntero del mouse. A veces parece que el sistema se congela: hace tres años, lo dejé solo y nada ha cambiado hasta ahora.
Prefiero evitar crear una partición / archivo de intercambio en este eeePC ya que el disco ya es tan pequeño, y también porque las muchas escrituras en el espacio de intercambio acortarían mucho la vida útil de la tarjeta flash. Además, creo que un archivo / partición de intercambio simplemente movería el problema, en lugar de solucionarlo definitivamente.
¿No se supone que el núcleo mata algunas aplicaciones aleatorias cuando se queda sin memoria? ¿Por qué falla (o tarda años) en hacer eso?
Hace unos meses / años ya intenté profundizar en esto, pero no pude encontrar nada que realmente funcionara ...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
. Esto definitivamente solucionaría mi problema. Pero espera, ¿no se supone que el kernel haga eso (y de una manera mucho mejor que mi script)? ¿Por qué no está haciendo su trabajo?