¿Es necesario reiniciar el cambio de swappiness?

14

Si configuro el valor de intercambio a otro, por ejemplo: 60 a 0, ¿siempre tengo que reiniciar la máquina para que los cambios surtan efecto? Incluso cuando se modifica con:

sysctl -w vm.swappiness=0
evachristina
fuente

Respuestas:

25

Todo está bien explicado en la página de Wikipedia que diste.

# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness

# Alternatively, run this as a non-root user
# This does the same as the previous command
sudo sysctl -w vm.swappiness=10

# Verify the change
cat /proc/sys/vm/swappiness
10

En este punto, el sistema administrará el intercambio como lo acaba de configurar, PERO si reinicia AHORA, su cambio se olvidará y el sistema funcionará con el valor predeterminado (suponiendo 60, lo que significa que comenzará a cambiar al 40% ocupación de RAM).

Debe agregar la siguiente línea /etc/sysctl.confpara mantener su cambio de forma permanente:

vm.swappiness = 10

Espero que sea más claro para ti ahora!

tisc0
fuente
Es interesante que -wse suponga que el interruptor escriba el cambio. Uno pensaría que después de escribir eso, no sería necesario agregar la línea predeterminada en sysctl.conf.
WEBjuju
Hola WEBjuju, tienes razón, el interruptor todavía no funciona para mí (fedora 25 o centos 7). Entonces no es necesario, ya que el cambio del valor en vivo en el archivo / proc se realiza de todos modos sin.
tisc0
7

¿Necesita reiniciar la máquina para que los cambios surtan efecto?

De hecho, lo contrario: reiniciar restablecerá el intercambio a su valor predeterminado. Para que persista durante los reinicios, debe incluir una directiva en un script de arranque o usar el método recomendado en el artículo de Wikipedia agregando:

vm.swappiness = ??

Para /etc/sysctl.conf(o un /etc/sysctl.darchivo), ¿dónde ??está el valor que desea utilizar? Tenga en cuenta que solo agregar esto no causará ningún cambio en ese momento.

encerrada dorada
fuente
1

La respuesta aceptada es correcta, pero se recomienda utilizar un archivo de configuración "sysctl" separado para que no sobrescriba accidentalmente otras configuraciones (lo que podría suceder si sobrescribe el "sysctl.conf" global).

# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf

Quienes ya hayan modificado el archivo de configuración global "/etc/sysctl.conf" pueden querer eliminar las líneas que definen este valor de "intercambio" de ese archivo. Puede usar este comando para eliminar estas líneas del archivo de configuración global (manteniendo comentarios):

# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf

Ahora, para aplicar el nuevo valor, diga sysctlque lo use:

# sysctl -p /etc/sysctl.d/swappiness.conf

O aplique todas las configuraciones, incluida la capacidad de intercambio:

# sysctl -p /etc/sysctl.d/*

Verificarlo:

# sysctl vm.swappiness
vm.swappiness = 10
básico6
fuente
De acuerdo, es una mejor práctica, hacer las cosas más claras y seguras. Un buen hábito también cuando se usa una herramienta de administración de configuración.
tisc0
1

Descubrí que en una máquina CentOS , vm.swappinessse estaba instalando /usr/lib/tuned/virtual-guest/tuned.conf.

Determinar dónde el valor por defecto se está estableciendo mirando a través de tunedarchivos de configuración :

sudo grep -R swap /usr/lib/tuned | grep swappiness

Después de actualizar el valor predeterminado, todavía se puede configurar el intercambio actual sin reiniciar :

sudo sysctl vm.swappiness=10

y probado por:

cat /proc/sys/vm/swappiness
WEBjuju
fuente
1
/etc/tuned/tuned-main.conf (RHEL7) tiene una configuración que permite /etc/sysctl.conf, /etc/sysctl.d, etc., anular la configuración aplicada por tuned (es decir, reapply_sysctl = 1). Al menos en mi instalación, este es el valor predeterminado.
kbulgrien
0

Los cambios del usuario a sysctlpor convención van a los archivos con el prefijo, 60-por lo que el nombre del archivo debe ser /etc/sysctl.d/60-swappiness.conf. Ejecutar service procps startcomo root para forzar una nueva lectura de los valores de configuración (no es necesario reiniciar).

Doug Munch
fuente