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
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
Respuestas:
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.conf
para mantener su cambio de forma permanente:
vm.swappiness = 10
Espero que sea más claro para ti ahora!
¿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.d
archivo), ¿dónde ??
está el valor que desea utilizar? Tenga en cuenta que solo agregar esto no causará ningún cambio en ese momento.
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 sysctl
que 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
Descubrí que en una máquina CentOS , vm.swappiness
se estaba instalando
/usr/lib/tuned/virtual-guest/tuned.conf
.
Determinar dónde el valor por defecto se está estableciendo mirando a través de tuned
archivos 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
Los cambios del usuario a sysctl
por 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 start
como root para forzar una nueva lectura de los valores de configuración (no es necesario reiniciar).
-w
se 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.