"bash: fork: No se puede asignar memoria" para ningún comando: ¿cómo evitar esto a nivel del sistema operativo?

"bash: fork: No se puede asignar memoria" para ningún comando: ¿cómo evitar esto a nivel del sistema operativo?

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 jobsy kill %1recuperar 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?

información relacionada