SHMMAX + как повлиял параметр ядра, который был неправильно установлен по ошибке

несколько слов о разделяемой памяти

Общая память позволяет процессам получать доступ к общим структурам и данным, помещая их в разделяемые сегменты памяти. Это самая быстрая из доступных форм межпроцессного взаимодействия, поскольку при передаче данных между процессами ядро ​​не участвует. На самом деле данные не нужно копировать между процессами.

мы замечаем, что значение в redhat-машинах огромно, как показано ниже

 cat /proc/sys/kernel/shmmax
 17446744003692774391

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

когда я вычислил его в гигабайтах - 16248546544,17632

это логично? , мы что-то здесь упускаем

машины с 64G и 16 CPU и используются в кластере hadoop

0
30.05.2019, 12:16
1 ответ

Значение по умолчанию для shmmaxравно

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

Это верхняя граница, выбранная так, чтобы она была как можно больше при ограничении риска переполнения.:

SHMMNI, SHMMAX and SHMALL are default upper limits which can be modified by sysctl. The SHMMAX and SHMALL values have been chosen to be as large possible without facilitating scenarios where userspace causes overflows when adjusting the limits via operations of the form "retrieve current limit; add X; update limit". It is therefore not advised to make SHMMAX and SHMALL any larger. These limits are suitable for both 32 and 64-bit systems.

Значение в порядке, как -; он установлен правильно, ошибки нет.

2
28.01.2020, 02:40

Теги

Похожие вопросы