Интерпретация /proc/sys/kernel/shmall

Интерпретация /proc/sys/kernel/shmall

Если я не ошибаюсь, значение /proc/sys/kernel/shmallуказывает общий объем разделяемой памяти в байтах, который может быть выделен системе.

Я работаю на t2.microэкземпляре ec2 Debian и получаю следующее:

$ cat /proc/sys/kernel/shmall
18446744073692774399

Я не думаю, что это означает, что общий выделяемый объем разделяемой памяти составляет около0,02 зеттабайта...

решение1

Правильно, этого должно быть достаточно для любого, определенного как (ULONG_MAX - (1UL << 24)). Обратите внимание, что это не значение для каждого процесса, а общее значение. Смотритеhttp://elixir.free-electrons.com/linux/latest/source/include/uapi/linux/shm.h#L13:

* SHMMNI, SHMMAX и SHMALL — верхние пределы по умолчанию, которые могут быть изменены.
 * изменено sysctl. Значения SHMMAX и SHMALL были выбраны для
 * быть максимально большим, не упрощая сценарии, в которых пользовательское пространство
 * вызывает переполнение при настройке лимитов с помощью операций вида
 * "извлечь текущий лимит; добавить X; обновить лимит". Поэтому это не
 * рекомендуется сделать SHMMAX и SHMALL больше. Эти пределы
 * подходит как для 32-, так и для 64-битных систем.

Связанный контент