SHMMAX + cómo afecta el parámetro del kernel que no se configuró correctamente por error

SHMMAX + cómo afecta el parámetro del kernel que no se configuró correctamente por error

algunas palabras sobre la memoria compartida

La memoria compartida permite que los procesos accedan a estructuras y datos comunes colocándolos en segmentos de memoria compartida. Es la forma más rápida de comunicación entre procesos disponible, ya que no se produce ninguna participación del núcleo cuando se pasan datos entre los procesos. De hecho, no es necesario copiar datos entre procesos.

Notamos que el valor en las máquinas Redhat es enorme como se muestra a continuación.

 cat /proc/sys/kernel/shmmax
 17446744003692774391

 sysctl -a | grep kernel.shmmax
 kernel.shmmax = 17446744003692774391

cuando calculé a Giga es - 16248546544.17632

¿es lógico? , ¿nos perdemos algo aquí?

Las máquinas tienen 64G y 16 CPU y se usan en el clúster hadoop.

Respuesta1

Elvalor por defectopara shmmaxes

#define SHMMAX (ULONG_MAX - (1UL << 24))

Este es un límite superior, elegido para que sea lo más grande posible y al mismo tiempo limitar el riesgo de desbordamiento:

SHMMNI, SHMMAX y SHMALL son límites superiores predeterminados que pueden modificarse mediante sysctl. Los valores SHMMAX y SHMALL se han elegido para que sean lo más grandes posible sin facilitar escenarios en los que el espacio de usuario provoque desbordamientos al ajustar los límites mediante operaciones del tipo "recuperar límite actual; agregar X; actualizar límite". Por lo tanto, no se recomienda agrandar SHMMAX y SHMALL. Estos límites son adecuados para sistemas de 32 y 64 bits.

El valor está bien tal como está; está configurado correctamente, no hay ningún error.

información relacionada