Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.5. Ajuste de memoria virtual

La memoria virtual suele ser consumida por procesos, cache de sistema de archivos y el kernel. El uso de la memoria virtual depende de un número de factores que pueden afectarse mediante los siguientes parámetros:
swappiness
Un valor de 0 a 100 que controla el punto en el que cambia el sistema. Un valor alto da prioridad al rendimiento del sistema, al intercambiar de forma agresiva los procesos de memoria física cuando no están activos. Un valor bajo da prioridad a la interacción y evita el intercambio de procesos de memoria física por el tiempo que sea posible, lo cual decrece la latencia de respuesta. El valor predeterminado es 60.
min_free_kbytes
El número mínimo de kilobytes a mantener libres a través del sistema. Este valor sirve para computar un valor de marca de agua para cada zona de memoria baja, a la cual se le asigna un número de páginas libres reservadas, proporcional a su tamaño.

Aviso

Sea cauteloso al establecer este parámetro, puesto que si los valores son demasiado altos o demasiado bajos pueden ocasionar daños.
Si establece a min_free_kbytes demasiado lento, evitará que el sistema reclame memoria. Esto hará que el sistema se cuelgue y ocasione procesos múltiples de OOM-killing.
Sin embargo, si establece este parámetro a un valor demasiado alto (5-10 % de la memoria total del sistema) hará que la memoria de su sistema se agote inmediatamente. Linux está diseñado para usar todos los datos del sistema de archivos cache de RAM disponible. Si establece un valor de min_free_kbytes hará que el sistema consuma mucho tiempo reclamando memoria.
dirty_ratio
Define un valor de porcentaje. La escritura de datos sucios comienza (a través de pdflush) cuando los datos sucios comprenden este porcentaje del total de memoria del sistema. El valor predeterminado es 20.
dirty_background_ratio
Define un valor de porcentaje. La escritura de datos sucios comienza en el segundo plano (mediante pdflush) cuando los datos sucios comprimen este porcentaje de memoria total. El valor predeterminado es 10.
drop_caches
Si establece este valor a 1, 2, o 3 hará que el kernel envíe varias combinaciones de cache de página y de cache de plancha.
1
El sistema invalida y libera toda la memoria de cache de página.
2
El sistema libera toda la cache de plancha de memoria no utilizada
3
El sistema libera toda la cache de página y la memoria cache de plancha.
Esta es una operación no destructiva. Puesto que los objetos sucios no pueden ser liberados, se recomienda la ejecución de sync antes de establecer el valor de parámetro.

Importante

El uso de drop_caches para liberar memoria no se recomienda en un entorno de producción.
Para establecer estos valores de forma temporal durante el ajuste, ejecute con el comando 'echo' el valor deseado para el archivo apropiado en el sistema de archivos proc. Por ejemplo, para establecer temporalmente swappiness a 50, ejecute:
# echo 50 > /proc/sys/vm/swappiness
Si desea establecer de forma persistente este valor, use el comando sysctl. Para obtener mayor información, consulte la Guía de implementación, disponible en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.