Ho una macchina Linux piuttosto vecchia con 2 GB di RAM, senza scambio, e funziona molto bene, con il sistema che utilizza ogni pezzo di memoria inutilizzato per la memorizzazione nella cache con grande effetto.
Tuttavia, quando sono vicino a stressare la memoria (ad es.> 1950MB allocati), rallenta a gattonare; Sospetto perché non siano rimasti buffer del disco. So che il killer OOM entrerebbe presto in vigore, ma di solito non ci arriva - sta diventando così lento che carica gli scatti a 30-40, nessun processo fa alcun progresso (quindi non alloca più memoria) e Devo riavviarlo.
Quando provo a interrompere un solo processo per ottenere la risposta della macchina, ad esempio andando alla console (tramite Alt-F1, eseguendo l'accesso e facendo semplicemente un "processo killall"), di solito funziona, tranne che devo aspettare ~ 10 minuti tra utente / password e ricezione di un prompt, il tutto durante l'attività del disco.
Ancora una volta, non c'è scambio, quindi non si scambia - si sta solo schiantando perché non ha buffer.
Avrei molto dedicato circa 100 MB esclusivamente ai buffer del disco, il che avrebbe innescato il killer OOM in precedenza (meno memoria per i programmi, dopotutto) ma d'altra parte avrebbe lasciato la macchina reattiva in ogni momento.
C'è un modo per farlo? Non sono stato in grado di trovare una voce / proc / kernel o / sys / vm che faccia questo tipo di cose.