Intercambio de Linux: ajuste de la configuración de Kernel VM

9

Antes de leer esto, tenga en cuenta que entiendo los beneficios del almacenamiento en caché. Estoy familiarizado con el dogma de que el carnero no utilizado es carnero desperdiciado.

Esta pregunta es una que he adaptado de una pregunta anterior:

eliminar ram de caché de linux

En esa pregunta tenía curiosidad por ajustar cómo mi servidor usa y almacena memoria caché. El sistema es bastante dinámico, así que creo que los archivos en caché realmente no me permiten ganar mucho. Además, tenemos código en el servidor que tiene que acceder rápidamente a grandes cantidades de ram en cortos períodos de tiempo para procesar archivos de video y creo que veré un beneficio en el rendimiento al entregar directamente el ram en lugar de borrarlo de la caché y luego entregándolo

Me gustaría saber si alguno de ustedes tiene experiencia con el ajuste del valor predeterminado de 60 en el siguiente archivo (esto sucede en un servidor Ubuntu):

/proc/sys/vm/swappiness  

Y si es así, ¿qué efectos viste? Si reemplazo el valor predeterminado de 60 por 30, ¿veré menos intercambio y mucha más reutilización de la memoria caché obsoleta? ¿Me acerco a 0 o 100 para disminuir el intercambio y aumentar la reutilización de la memoria caché?

Finalmente, ¿alguien sabe por qué el valor predeterminado se establece en 60?

NOTA: Si está cerca de 0, Linux preferirá mantener las aplicaciones en RAM y no hacer crecer las cachés. Si está cerca de 100, Linux preferirá intercambiar aplicaciones y ampliar las cachés tanto como sea posible. El valor predeterminado es un 60 saludable. - Gracias por el siguiente enlace, 3dInfluence.

Patrick R
fuente

Respuestas:

6

Editar: reescribí la respuesta para que sea más corta y clara, espero :)

Realmente necesita comprender cómo funciona el subsistema VM en su conjunto para comenzar a ajustar los ajustables o puede descubrir que no está obteniendo los resultados que espera. Este artículo es un buen punto de partida sobre cómo funcionan estas configuraciones junto con una inclinación de escritorio.

Entonces más a su pregunta. Swappiness controla cuándo el subsistema VM recupera las páginas de la tabla de proceso al desasignarlas y paginarlas, también conocido como intercambio. Este ajuste funciona diciéndole al subsistema VM que busque páginas para intercambiar cuando el% de memoria asignada para procesar tablas de páginas + valor de intercambio es> 100. Por lo tanto, una configuración de 60 hará que el sistema comience a paginar páginas obsoletas desde la página de proceso tabla cuando utiliza más del 40% de la memoria de su sistema. Si desea permitir que sus programas utilicen más memoria a expensas de la memoria caché, querrá reducir el valor de intercambio. También querrás echar un vistazo a / proc / sys / vm / min_free_kbytes y / proc / sys / vm / vfs_cache_pressure. Como esto también controlará cuánta memoria se mantiene en reserva y qué tan agresivo es el almacenamiento en caché.

3dinfluence
fuente
@ 3dinfluence: he estado trabajando en el artículo al que hace referencia anteriormente. ¡Gran recurso!
Patrick R
1
linuxinsight.com/proc_sys_vm_hierarchy.html le dará una o dos oraciones sobre lo que hace cada uno de los ajustables. Pero obtuve esa información sobre cómo funciona el intercambio de un libro llamado "Ajuste del rendimiento para servidores Linux"
3dinfluence
+1 gracias 3dinfluence. Hasta ahora ese libro ha sido extremadamente educativo.
Patrick R
Eso es genial ... ¿ha podido mejorar el rendimiento de su aplicación?
3dinfluence
He podido mejorar el rendimiento. Además, descubrí que el siguiente comando ayuda durante las modificaciones: # sysctl -w vm.swappiness = 40
Patrick R