Come configurare lo swappiness in Linux Memory Management?


11

Il parametro swappiness controlla la tendenza del kernel a spostare i processi dalla memoria fisica al disco di swap. Qual è l'impostazione predefinita e come configurarla per migliorare le prestazioni generali ?


3
Dopo aver cambiato swapiness, ho trovato utile svuotare lo swap swapoff -aper ricominciare da capo. serverfault.com/a/354384/203035
Nemo

Risposte:


10

Il kernel di Linux fornisce un'impostazione modificabile che controlla lo swappiness

$ cat /proc/sys/vm/swappiness
60  

aperto /etc/sysctl.confcome root. Quindi, modifica o aggiungi questa riga al file:

vm.swappiness = 10

per modificare temporaneamente il valore di swapiness provare questo comando:

$ echo 50 > /proc/sys/vm/swappiness

1
Come risponde "come configurarlo per migliorare le prestazioni complessive?"
techraf,

Lo scambio è necessario quando le prestazioni del sistema sono lente perché accade a volte quando si sta esaurendo la RAM utilizzabile, il che avrebbe rallentato il sistema (forse anche le applicazioni in crash) anche se non si fosse scambiato. Quindi, per semplificare le cose, lo scambio avviene perché il sistema si sta impantanando, piuttosto che il contrario - e in alcuni casi può salvare la situazione.
Ibrido

2
Non è inoltre necessario che le sudo sysctl -p /etc/sysctl.confmodifiche abbiano effetto?
pkaramol,

11

Da Swappiness, Wikipedia

È possibile impostare questo valore in un file virtuale/proc/sys/vm/swappiness Il valore menzionato deciderà come utilizzare lo spazio di scambio, di seguito sono riportati i valori con i loro intenti.

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

Anche se in realtà dipende anche dalla necessità, se la memoria fisica disponibile è sufficiente, potrebbe non esserci una grande necessità di spazio di scambio, in termini di Layman non sarà necessario modificare il valore predefinito di 60.


@techraf ha aggiornato la risposta.
Keyshov Borate,

1
Nelle VM consiglio comunque di cambiarlo in 10 per ogni evenienza.
Rui F Ribeiro,

2

In RedHat / CentOS il valore predefinito è 60.
"Al fine di migliorare le prestazioni" è un termine molto ampio. Quali prestazioni stai cercando di migliorare?

Problemi con memoria insufficiente?
Il tuo sistema si scambia quando c'è ancora memoria libera / memoria cache?

In Linux RAM libera = RAM sprecata, quindi quasi tutta la memoria libera viene utilizzata per le cache del disco.
Esistono casi con swappiness = 60 in cui le pagine in memoria vengono spostate su SWAP se non sono state accedute per periodi di tempo prolungati, indipendentemente dalla RAM non allocata.
Spostare alcune pagine di memoria su SWAP non è necessariamente una cosa negativa.

Per favore fai un po 'più di luce sul problema per una risposta più dettagliata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.