¿Qué sucede cuando linux OS se queda sin RAM y no hay intercambio?

23

¿Qué sucede cuando Linux OS no tiene RAM y no hay intercambio disponible?

qwe123wsx
fuente
15
Sería malo Intenta imaginar toda la vida como la conoces deteniéndose instantáneamente y cada molécula en tu cuerpo explotando a la velocidad de la luz. Inversión protónica total.
David

Respuestas:

36

Cuando el sistema operativo no tiene RAM y no tiene intercambio, descarta las páginas limpias. No puede descartar páginas sucias porque primero tendría que escribirlas en algún lugar. Esto ocasiona golpes y bajo rendimiento si no hay suficiente RAM para mantener el conjunto de trabajo. Esa es una de las razones principales por las que realmente desea intercambiar, para que el sistema operativo pueda tomar una mejor decisión sobre qué páginas desalojar.

Sin intercambio, el sistema se quedará sin memoria virtual (estrictamente hablando, RAM + intercambio) tan pronto como no tenga más páginas limpias para desalojar. Entonces tendrá que matar procesos.

Quedarse sin RAM es completamente normal. Es solo un giro negativo al usar RAM. No quedarse sin RAM podría describirse igualmente como "desperdicio de RAM". Una vez que toda la RAM está en uso, el sistema operativo toma decisiones inteligentes sobre qué guardar en la RAM y qué no. Sin ningún intercambio, tiene menos opciones.

Con o sin intercambio, cuando desalojar páginas no es suficiente, el sistema operativo comenzará negándose a permitir que las operaciones que requieren memoria (como mmapy fork) tengan éxito. Sin embargo, a veces eso no es suficiente y los procesos deben ser eliminados.

David Schwartz
fuente
44
+1 "Quedarse sin RAM es completamente normal. Es solo un giro negativo al usar RAM. No quedarse sin RAM podría describirse igualmente como" desperdicio de RAM ".
TheTurkey
Una consulta relacionada. ¿Sabes qué sucede si intento hibernar una máquina Linux y no hay suficiente espacio de intercambio para almacenar los datos transitorios? ¿Deja de hibernar?
Prahlad Yeri
1
@PrahladYeri Eso es correcto. Si no tiene una partición suspendida y no hay suficiente intercambio libre para contener el contenido de la RAM, no puede hibernar.
David Schwartz
unix.stackexchange.com/q/153585
GoFundMonica - codidact.org