¿Cómo configuro el intercambio?

345

Necesito una forma paso a paso, simple y fácil de configurar el intercambio.

Un cero
fuente
17
One linersudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"
redanimalwar
8
@redanimalwar también debe ejecutar sudo sysctl -ppara cargar el nuevo valor de intercambio desde el archivo sysctl.conf, de lo contrario, el cambio solo se aplica en el próximo reinicio.
waldyrious

Respuestas:

510

El kernel de Linux proporciona una configuración modificable que controla con qué frecuencia se usa el archivo de intercambio, denominado intercambio.

Una configuración de intercambio de cero significa que se evitará el disco a menos que sea absolutamente necesario (se queda sin memoria), mientras que una configuración de intercambio de 100 significa que los programas se intercambiarán al disco casi instantáneamente.

El sistema Ubuntu viene con un valor predeterminado de 60, lo que significa que el archivo de intercambio se usará con bastante frecuencia si el uso de la memoria es aproximadamente la mitad de mi RAM. Puede verificar el valor de intercambio de su propio sistema ejecutando:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Como tengo 4 GB de RAM, me gustaría reducirlo a 10 o 15. El archivo de intercambio solo se usará cuando mi uso de RAM sea de alrededor del 80 o 90 por ciento. Para cambiar el valor de intercambio del sistema, ábralo /etc/sysctl.confcomo root . Luego, cambie o agregue esta línea al archivo:

vm.swappiness = 10

Reinicie para que el cambio surta efecto.

También puede cambiar el valor mientras su sistema aún se está ejecutando con:

sysctl vm.swappiness=10

También puede borrar su intercambio ejecutando swapoff -ay luego swapon -acomo root en lugar de reiniciar para lograr el mismo efecto.

Para calcular su fórmula de intercambio:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

entonces total es 3950/100 = 39.5 * 10 = 395

Entonces, lo que significa es que cuando queda un 10% (395 MB) de RAM, comenzará a usar el intercambio.


                                          Ayuda . Ubuntu Intercambiar

                                           ¿Qué es el intercambio?

El parámetro swappiness controla la tendencia del núcleo a mover procesos fuera de la memoria física al disco de intercambio. Debido a que los discos son mucho más lentos que la RAM, esto puede conducir a tiempos de respuesta más lentos para el sistema y las aplicaciones si los procesos se eliminan demasiado agresivamente de la memoria.

  • swappiness puede tener un valor entre 0 y 100.
  • swappiness=0:
    • Kernel versión 3.5 y más reciente: deshabilita el intercambio.
    • Versión de kernel anterior a 3.5: evita el intercambio de procesos fuera de la memoria física durante el mayor tiempo posible.
  • swappiness=1:
    • Kernel versión 3.5 y superior: intercambio mínimo sin deshabilitarlo por completo.
  • swappiness=100:
    • Le dice al kernel que intercambie agresivamente los procesos fuera de la memoria física y los mueva al intercambio de caché.

Ver http://en.wikipedia.org/wiki/Swappiness .

La configuración predeterminada en Ubuntu es swappiness=60. La reducción del valor predeterminado de swappiness probablemente mejorará el rendimiento general de una instalación de escritorio típica de Ubuntu. Se swappiness=10recomienda un valor de , pero siéntase libre de experimentar.


Ejemplo

Comenzó a usar swap al 91% :

ingrese la descripción de la imagen aquí Como configuré mi sistema y vm para usar RAM al 90% , al 90% no hubo intercambio.

Después de eso abrí algunas aplicaciones como Firefox & Shutter, y comenzó a intercambiar porque el uso de RAM está por encima del 90% .

Un cero
fuente
118
El intercambio de 100 no hace que los programas se cambien de inmediato, ni se utiliza un valor de 60 o 90 cuando el ram está lleno al 60 o 90%. Es una proporción de preferencia para robar páginas de la memoria caché frente a intercambiar cosas para liberar algo de memoria cuando no hay suficiente. Un valor bajo preferirá robar páginas del caché, y un valor alto prefiere probar y cambiar páginas. La configuración solo tiene efecto una vez que la memoria se utiliza (casi), y el núcleo tiene que elegir cómo liberar algo.
psusi
67
Debe señalar que la RAM que NO está ocupada por los programas en ejecución se usa como caché de disco ... por lo tanto, al disminuir el intercambio, aumenta la posibilidad de que un programa no se intercambie, pero al mismo tiempo disminuye el tamaño de caché de disco, lo que puede hacer que el acceso al disco sea más lento. Entonces, los efectos de esta configuración en el rendimiento real no son tan sencillos ... puedes experimentar, por supuesto, pero sospecho que los valores predeterminados son establecidos por personas que entienden lo suficiente sobre el tema :)
Sergey
14
@Sergey y la ironía de esto es que las personas con poca RAM tienen más probabilidades de probar todos los trucos que puedan encontrar para aumentar el rendimiento y es más probable que sean las personas para las que 60 o incluso más serían la mejor cifra. Aquellos de nosotros lo establecemos en 10 porque tenemos toneladas de RAM no estamos ganando tanto como perderán si lo hacen.
Jon Hanna
66
@Freedom_Ben: Ver linuxatemyram.com :)
Sergey
55
Solo dejo una discusión similar aquí - unix.stackexchange.com/questions/88693/…
Elijah Lynn el