Sto usando Debian Sid, disco rigido formattato con ext4, in esecuzione su Linux 3.1
Ricordo che nelle versioni precedenti di Linux (forse prima della 3.0), se esaurivo la memoria e lo scambio non è abilitato, i programmi di solito si bloccano. Questo è perfetto per il mio ambiente: navigazione web semplice senza operazioni critiche. Cioè, se mi imbatto in un sito Web errato che utilizza troppa memoria, si blocca senza rendere inutilizzabile il mio terminale.
Ma nella mia configurazione attuale, il computer si blocca con un throughput I / O violento in background. iotop rivela che kswapd0 è il colpevole, il che significa che è dovuto allo scambio. Dopo aver usato swapon -sper determinare eventuali swap abilitati, ho usato swapoff -aper disabilitare tutti gli swap e di swapon -snuovo per confermare che tutti gli swap erano disabilitati.
Quindi ho provato di nuovo a massimizzare l'utilizzo della memoria. Purtroppo, il comportamento che mi aspettavo non si è verificato. Al contrario, kswapd0 prova ripetutamente a scambiare la RAM e fallisce perché non c'è spazio di scambio. Poiché non si arrende mai, il mio computer è bloccato in un eterno blocco I / O pesante, dannoso per la salute del mio disco.
Sto facendo qualcosa di sbagliato nel tentativo di farlo swapoff -a? Perché il comportamento è diverso da quello che era (probabilmente prima della 3.0)?
fstabriga sullo swap. Prova se il comportamento è lo stesso.
swapoff -adovrebbe disabilitare lo scambio in modo permanente, il che significa che dovrebbe rimanere disabilitato dopo il prossimo riavvio. L'ho confermato. Tuttavia, la "tempesta" I / O si verifica ancora durante la sessione dopo il successivo riavvio. Per la cronaca, la "tempesta" I / O non è avvenuta nel momento in cui l'ho fatto swapoff -aperché lo swap era 0 in quel momento.
swapoff -a è permanente.
swapoff -asé , se ci fosse qualcosa nello swap, genererà un sacco di I / O (e può causare l'uccisione di processi se non c'è abbastanza RAM disponibile). Sei sicuro che non sia stata laswapoff -acausa della "tempesta" I / O?