Estaba probando cómo una máquina Ubuntu 16.04 maneja condiciones de poca memoria y tuve varios trabajos suspendidos que consumieron casi toda la RAM del servidor. Todavía pude ejecutar comandos bash normales cuando salí del trabajo anoche. Por la mañana (sin que nadie le hiciera nada al servidor) todos los comandos ( ps
, free
, ls
, etc.) dieron el siguiente error:
-bash: fork: Cannot allocate memory
Finalmente pude ejecutar jobs
y kill %1
recuperar la máquina. Tuve suerte de mantener abierta una sesión SSH, porque fallaron más conexiones SSH (el cliente simplemente no mostró un símbolo del sistema después de la autenticación).
El hecho de que los programas habituales en el espacio de usuario puedan hacer que todo el servidor caiga hasta el punto de que, si no hubiera una sesión SSH existente, tendría que reiniciarse por completo, es un hecho.altamente¡sobre! Entendí que Linux (o cualquier sistema operativo, en realidad) debería finalizar los procesos para liberar RAM antes de que todo el sistema llegue a un estado tan inutilizable. ¿Cómo hago para que haga eso?