¿Cómo configurar swappiness en Linux Memory Management?

11

El parámetro swappiness controla la tendencia del núcleo a mover los procesos fuera de la memoria física al disco de intercambio. ¿Cuál es la configuración predeterminada y cómo configurarla para mejorar el rendimiento general ?

GAD3R
fuente
3
Después de cambiar el intercambio, me pareció útil vaciar el intercambio swapoff -apara comenzar de nuevo. serverfault.com/a/354384/203035
Nemo

Respuestas:

10

El kernel de Linux proporciona una configuración modificable que controla el intercambio

$ cat /proc/sys/vm/swappiness
60  

abrir /etc/sysctl.confcomo root Luego, cambie o agregue esta línea al archivo:

vm.swappiness = 10

para cambiar el valor de intercambio temporalmente intente este comando:

$ echo 50 > /proc/sys/vm/swappiness
Mestizo
fuente
1
¿Cómo responde "cómo configurar eso para mejorar el rendimiento general?"
techraf
El intercambio es necesario cuando el rendimiento de su sistema es lento porque sucede a veces cuando se está quedando sin RAM utilizable, lo que habría ralentizado su sistema (tal vez incluso aplicaciones bloqueadas) incluso si no hubiera intercambiado. Entonces, para simplificar las cosas, el intercambio ocurre porque su sistema se está estancando, en lugar de al revés, y en algunos casos puede salvar el día.
Mestizo
2
¿No es necesario que los sudo sysctl -p /etc/sysctl.confcambios surtan efecto?
pkaramol
11

De Swappiness, Wikipedia

Puede establecer este valor en un archivo virtual . /proc/sys/vm/swappiness El valor mencionado decidirá cómo se debe usar el espacio de intercambio, a continuación se muestran los valores con sus intenciones.

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.

Aunque en realidad también depende de la necesidad, si la memoria física disponible es suficiente, puede que no haya una gran necesidad de espacio de intercambio, en términos de Layman no habrá necesidad de cambiar el valor predeterminado de 60.

Borato de Keyshov
fuente
@techraf actualizó la respuesta.
Keyshov Borate
1
En máquinas virtuales, aconsejo cambiarlo a 10 por si acaso.
Rui F Ribeiro
2

En RedHat / CentOS, el valor predeterminado es 60.
"Para mejorar el rendimiento" es un término muy amplio. ¿Qué rendimiento estás tratando de mejorar?

¿Tienes problemas con poca memoria?
¿Cambia su sistema cuando todavía hay memoria libre / memoria en caché?

En Linux RAM libre = RAM desperdiciada, por lo que casi toda la memoria libre se usa para cachés de disco.
Hay casos con swappiness = 60 en los que las páginas de la memoria se mueven a SWAP si no se ha accedido a ellas durante largos períodos de tiempo, sin importar si tiene RAM no asignada.
Mover algunas páginas de memoria a SWAP no es necesariamente algo malo.

Por favor, arroje algo más de luz sobre su problema para obtener una respuesta más detallada.

fireto
fuente