User Tools

Site Tools


optimizacion_de_memoria_ram_en_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
optimizacion_de_memoria_ram_en_linux [2022/04/06 12:52] – [Swappiness] busindreoptimizacion_de_memoria_ram_en_linux [2022/04/06 23:28] (current) – [Swappiness] busindre
Line 8: Line 8:
 ==== Swappiness ==== ==== Swappiness ====
  
-Swappiness es una propiedad del Núcleo Linux que permite establecer un balance entre el uso del Espacio de intercambio (swap en inglés) y la Memoria de acceso aleatorio (RAM). El swappiness puede tomar valores desde el 0 hasta el 100. Si se establece 0 el núcleo intentará no hacer intercambio, mientras que si se establece 100 el sistema intentará mantener la Memoria de acceso aleatorio lo más libre posible haciendo intercambio. Es algo que en la actualidad no tiene demasiado sentido optimizar ya que no suele ser utilizada gracias al tamaño de las memorias ram actuales. El valor a fecha de este artículo que usan casi todos los kernels de las distribuciones más populares es de 60. +Swappiness es una propiedad del Núcleo Linux que permite, a grandes rasgos, establecer un balance entre el uso del espacio de intercambio (swap en inglés) y la Memoria de acceso aleatorio (RAM). Se utiliza para equilibrar la presión de la liberación de páginas anónimas frente a las páginas de la caché de archivos. El swappiness puede tomar valores desde el 0 hasta el 100. Si se establece 0 el núcleo intentará no hacer intercambio, mientras que si se establece 100 el sistema intentará mantener la Memoria de acceso aleatorio lo más libre posible haciendo intercambio. Es algo que en la actualidad raramente tiene demasiado sentido optimizar ya que no suele ser utilizada gracias al tamaño de las memorias RAM actuales. El valor a fecha de este artículo que usan casi todos los kernels de las distribuciones más populares es de 60. 
  
  
Line 31: Line 31:
 ==== watermark_scale_factor ==== ==== watermark_scale_factor ====
  
-La variable vm.watermark_scale_factor determina cuando se activa el demonio Kswapdel cual se encarga de la paginación RAM > Swap y determina la cantidad de información en la memoria que será paginada al disco. El valor por defecto es 10 el máximo 1000.+La memoria en Linux está dividida en zonastípicamente ZONE_NORMAL y ZONE_DMA (Acceso Directo a Memoria). Cada zona tiene una marca de agua que indica la "presión de uso" de la memoria que es responsable del comportamiento del demonio pageout en la zona. Las marcas de agua son pages_low, pages_min pages_high. Cuando la marca de agua de la zona está en pages_low, kswapd se activa y comienza a liberar páginas hasta que se alcanza la marca de agua pages_high, y entonces vuelve a su estado de inactividad.
  
-Cambiando el valor de 10 a 300 por ejemplo se obliga a que el proceso de paginación se inicie antes. Si el valor es 300, al quedar un 3% de RAM disponible se iniciará Kswapd para paginar datos de la memoria RAM al disco duro. Con el valor predeterminado de 10la paginación se iniciará cuando un 0,1% de la memoria RAM esté libreEn algunos casos, en equipos con poca memoria ramesto es demasiado poco tiempo y pueden empezar a fallar programas o colgarse el sistema si al núcleo no le da tiempo eliminar procesosPor otro lado, si se envían muchos datos la swap, algunas aplicaciones pueden bajar en rendimiento. +Kswapd no solo se encarga de la paginación la memoria de intercambiotambién puedeentre otras cosas, reducir el tamaño de del buffer y cache y descartar ciertas páginasCuando no se usa swap en el sistema, el demonio puede aparecer para que los procesos puedan acceder sus datos mapeados en disco, normalmente ficheros ejecutablesCuando kswap consume mucha CPU suele deberse a una memoria física insuficiente ya que se está obligando usar demasiada swap, lo cual tiene un coste en rendimiento (operaciones de entrada y salida).
  
-El valor debe estipularse en base a la cantidad de memoria ram instalada en el equipo o VM.+La variable vm.watermark_scale_factor determina cuando se activa el demonio Kswapd. De esta forma la memoria RAM no se llenará del todo o al menos dejará algo más disponible para el buen funcionamiento del sistema. El valor por defecto es 10 (0,1%) y el máximo 1000 (10%). No es algo que pueda ayudar demasiado a mejorar el rendimiento del equipo, pero puede ser beneficioso configurarla en algunos casos. Por ejemplo en equipos con poca memoria que se cuelguen frecuentemente debido a requerimientos de uso de memoria agresivos. 
 + 
 +Cambiando el valor de la variable 10 a 300 por ejemplo, se obliga a que el proceso de paginación se inicie antes. Si el valor es 300, al quedar un 3% de RAM disponible se iniciará Kswapd para paginar datos de la memoria RAM al disco duro. Con el valor predeterminado de 10, la paginación se iniciará cuando un 0,1% de la memoria RAM esté libre. En algunos casos, en equipos con poca memoria RAM, si el margen es muy pequeño, el kernel puede no tener tiempo de eliminar procesos y por tanto se pueden colgar aplicaciones o el sistema. 
 + 
 +El valor debe estipularse en base a la cantidad de memoria RAM instalada en el equipo o VM.
 <code bash>vm.watermark_scale_factor = 300</code> <code bash>vm.watermark_scale_factor = 300</code>
 ==== Cache pressure ==== ==== Cache pressure ====
optimizacion_de_memoria_ram_en_linux.1649242348.txt.gz · Last modified: 2022/04/06 12:52 by busindre