GNU/Linux >> Tutoriales Linux >  >> Linux

¿Adónde va la memoria restante de vm.overcommit_ratio?

¿Qué hará el sistema con el 20 % restante?

El núcleo utilizará la memoria física restante para sus propios fines (estructuras internas, tablas, búferes, cachés, lo que sea). La configuración de sobrecompromiso de memoria maneja las reservas de memoria virtual de la aplicación de usuario, el kernel no usa memoria virtual sino física.

¿Por qué se requiere este parámetro en primer lugar?

El overcommit_ratio El parámetro es una opción de implementación diseñada para evitar que las aplicaciones reserven más memoria virtual de la que razonablemente estará disponible para ellas en el futuro, es decir, cuando realmente accedan a la memoria (o al menos lo intenten).

Ajuste overcommit_ratio al 50% ha sido considerado un valor predeterminado razonable por los desarrolladores del kernel de Linux. Asume que el kernel nunca necesitará usar más del 50% de la memoria RAM física. Su kilometraje puede variar, por lo que es ajustable.

¿Por qué no debo configurarlo siempre al 100 %?

Configurarlo al 100 % (o cualquier valor "demasiado alto") no desactiva de manera confiable el compromiso excesivo porque no puede asumir que el núcleo usará el 0 % (o muy poco) de RAM.

No evitará que las aplicaciones se bloqueen, ya que el kernel podría apropiarse de todos modos de toda la memoria física que requiere.


Establecer la proporción en 100 % no reservará ningún espacio para páginas respaldadas por archivos o asignaciones en el kernel, como código del kernel, búferes de red, etc.

Las estructuras internas del kernel se asignarán independientemente, lo que provocará un compromiso excesivo. Por lo general, están limitados individualmente (por ejemplo, hay una configuración para los búferes de red). No creo que haya un límite general del 50 %, aunque un límite general es algo en lo que se ha trabajado con el fin de alojar contenedores.

Las páginas respaldadas por archivos son desde donde generalmente ejecuta el código del espacio de usuario, por lo que también necesita espacio para eso.


Linux
  1. El kernel de Linux:las 5 principales innovaciones

  2. El ciclo de vida de las pruebas del kernel de Linux

  3. Linux:¿qué implica el diseño de la memoria del kernel virtual en Dmesg?

  4. ¿Dónde está la función itoa en Linux?

  5. ¿Dónde encuentro la versión de un árbol de fuentes del kernel de Linux?

Segmentación de memoria de Linux

¿Dónde está el comando de gemas en RHEL6?

¿Dónde están documentados los parámetros del kernel de Linux presentes en /proc/sys?

¿Dónde está el tenedor() en la bomba tenedor :(){ :|:&};:?

¿Se carga todo el núcleo en la memoria al arrancar?

¿De qué sirve tener una parte del núcleo en el espacio de memoria virtual de los procesos de Linux?