Cosa succede quando il sistema operativo Linux non ha più RAM e non è disponibile lo scambio?
Cosa succede quando il sistema operativo Linux non ha più RAM e non è disponibile lo scambio?
Risposte:
Quando il sistema operativo ha esaurito la RAM e non ha swap, scarta le pagine pulite. Non può scartare le pagine sporche perché prima dovrebbe scriverle da qualche parte. Ciò provoca thrashing e scarse prestazioni se la RAM non è sufficiente per contenere il working set. Questo è uno dei motivi principali per cui vuoi davvero scambiare, quindi il sistema operativo può prendere una decisione migliore su quali pagine sfrattare.
Senza scambio, il sistema esaurirà la memoria virtuale (a rigore, RAM + scambio) non appena non ha più pagine pulite da eliminare. Quindi dovrà uccidere i processi.
A corto di RAM è del tutto normale. È solo un giro negativo sull'uso della RAM. Non esaurire la RAM potrebbe ugualmente essere descritto come "spreco di RAM". Una volta che tutta la RAM è in uso, il sistema operativo prende decisioni intelligenti su cosa conservare nella RAM e cosa non fare. Senza alcuno scambio, ha meno scelte.
Con o senza scambio, quando lo sfratto delle pagine non è sufficiente, il sistema operativo inizierà rifiutando di consentire le operazioni che richiedono memoria (come mmap
e fork
) per avere successo. Tuttavia, a volte non è abbastanza e i processi devono essere uccisi.