Red Hat Training

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

5.4. Capacidad de ajuste

Por favor lea esta sección para obtener un resumen de memoria, kernel y capacidad de sistema de archivos, los parámetros relacionados con cada uno y las concesiones al ajustar estos parámetros.
Para establecer estos parámetros de forma temporal durante el ajuste, 'echo' el valor deseado al archivo apropiado en el sistema de archivos proc. Por ejemplo, para establecer de forma temporal overcommit_memory a 1, ejecute:
# echo 1 > /proc/sys/vm/overcommit_memory
Observe que la ruta al parámetro en el sistema de archivos proc, depende del sistema afectado por el cambio.
Para establecer de forma persistente estos valores, necesitará usar 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/.

Ajustables de memoria relacionados con la capacidad

Cada uno de los siguientes parámetros se localiza en el sistema de archivos proc, /proc/sys/vm/ .
overcommit_memory
Define las condiciones que determinan si se acepta o niega una solicitud de memoria grande. Hay tres valores posibles para este parámetro:
  • 0 — el parámetro predeterminado. El kernel realiza sobre-envío de memoria heurística al estimar la cantidad de memoria disponible y fallar solicitudes que son evidentemente inválidas. Infortunadamente, como la memoria se asigna mediante una heurística en lugar de un algoritmo preciso, este parámetro, algunas veces autoriza la sobrecarga de memoria disponible en el sistema.
  • 1 — el kernel realiza el manejo de sobre-envío de no memoria. Bajo este parámetro, la memoria potencial para sobrecarga aumenta, pero también el rendimiento para tareas intensivas de rendimiento.
  • 2 — el kernel niega solicitudes para memoria igual o mayor que swap y el porcentaje de RAM físico especificado en overcommit_ratio. Este parámetro es mejor si desea un menor riesgo de sobreasignación de memoria.

    Nota

    Este parámetro únicamente se recomienda para sistemas con áreas de swap más grandes que su memoria física.
overcommit_ratio
Especifica el porcentaje de memoria RAM física que se tiene en cuenta cuando overcommit_memory se establece a 2. El valor predeterminado es 50.
max_map_count
Define el número máximo de áreas de mapas que un proceso puede usar . En la mayoría de los casos, el valor predeterminado de 65530 es el apropiado. Aumente este valor si su aplicación necesita asignar más de este número de archivos.
nr_hugepages
Define el número de páginas gigantes configuradas en el kernel. El valor predeterminado es 0. Solamente se pueden asignar (o desasignar) páginas gigantes si hay las suficientes páginas libres físicas contiguas. Las páginas reservadas por este parámetro no se pueden usar para otros propósitos. Puede obtener mayor información de la documentación instalada en: /usr/share/doc/kernel-doc-kernel_version/Documentation/vm/hugetlbpage.txt

Ajustables de kernel relacionados con la capacidad

Cada uno de los siguientes parámetros se localiza en el sistema de archivos proc, /proc/sys/kernel/.
msgmax
Define el tamaño máximo permitido en bytes de un mensaje individual en bytes de cualquier mensaje en la cola de mensajes. Este valor no debe exceder el tamaño de la cola (msgmnb). El valor predeterminado es 65536.
msgmnb
Define el tamaño máximo en bytes de una cola de mensajes. El valor predeterminado es 65536.
msgmni
Define el número máximo de identificadores de cola de mensajes (y por lo tanto, el número máximo de colas). El valor predeterminado en máquinas de arquitectura de 64 bits es 1985; para arquitectura de 32 bits, el valor predeterminado es 1736.
shmall
Define la cantidad total de memoria compartida en bytes que puede utilizarse en el sistema al mismo tiempo. El valor predeterminado en máquinas de arquitectura de 64 bits es 4294967296; para arquitectura de 32 bits, el valor predeterminado es 268435456.
shmmax
Define el máximo segmento de memoria compartida por el kernel, en bytes. El valor predeterminado en máquinas de arquitectura de 64 bits es 68719476736; para arquitectura de 32 bits, el valor predeterminado es 4294967295. Sin embargo, el kernel soporta valores mucho más grandes.
shmmni
Define el número máximo de todo el sistema de segmentos de memoria compartida. El valor predeterminado es 4096 tanto en arquitectura de 64 bits como en la de 32 bits.
threads-max
Define el número máximo de hilos (tareas) en todo el sistema que van a ser utilizados por el kernel al mismo tiempo. El valor predeterminado es igual al valor de kernel max_threads. La fórmula en uso es:
max_threads = mempages / (8 * THREAD_SIZE / PAGE_SIZE )
El valor mínimo de threads-max es 20.

Ajustables de sistema de archivos relacionados con la capacidad

Cada uno de los siguientes parámetros se localiza en el sistema de archivos proc, /proc/sys/fs/
aio-max-nr
Define el máximo número de eventos permitidos en todos los contextos asíncronos de E/S. El valor predeterminado es 65536. Observe que al cambiar este valor no se preasigna o redimensiona ninguna estructura de datos de kernel.
file-max
Lista el número máximo de identificadores de archivos asignados por el kernel. El valor predeterminado coincide con el valor de files_stat.max_files en el kernel, el cual se establece al valor más grande, ya sea de (mempages * (PAGE_SIZE / 1024)) / 10, o NR_FILE (8192 en Red Hat Enterprise Linux). El aumento de este valor puede corregir errores ocasionados por la falta de identificadores de archivos disponibles.

Ajustables para matar un proceso en falta de memoria

Falta de memoria o una OOM, se refiere a un estado en computación donde toda la memoria disponible, incluido el espacio swap, ha sido asignada. Esta situación hace que el sistema entre en pánico y deje de funcionar. Sin embargo, la configuración del parámetro /proc/sys/vm/panic_on_oom a 0 instruye al kernel para que llame a la función oom_killer cuando se presente una OOM. oom_killer puede matar procesos no autorizados y el sistema sobrevive.
El parámetro a continuación puede establecerse por proceso, lo cual le otorga control sobre los procesos que la función oom_killer puede matar. Dicha función se localiza en el sistema de archivos proc, /proc/pid/, donde pid es el número de ID de proceso.
oom_adj
Define un valor de -16 a 15 que ayuda a determinar el oom_score de un proceso. Entre más alto sea el valor de oom_score, más probabilidad habrá de que oom_killer mate el proceso. Si establece oom_adj a un valor de -17 se desactivará el oom_killer para ese proceso.

Importante

Cualquier proceso generado por el proceso ajustado heredará ese oom_score de proceso. Por ejemplo, si un proceso sshd está protegido de la función oom_killer, todos los procesos iniciados por dicha sesión SSH también se protegerán. Esto puede afectar la capacidad de la función oom_killer para rescatar el sistema si se presenta una OOM.