>shmall - общий размер shared memory в страницах, а страница какого размера?
>По идее kernel.shmall для этого VPS должен быть равен 128 Мб.,
>только в страницах.
>kernel.shmmax выставлять в 128 Мб тоже неправильно, но и постгресу хочется отдать
>по максимуму. Как подобрать значение? Размер страницы определяется так:
getconf PAGE_SIZE
В нашем случае это 4096.
А SHMALL (kernel.shmall) вообще получается сферическим конём в вакууме судя по этим строчкам:
linux-2.6.19/include/linux/shm.h :
/*
* SHMMAX, SHMMNI and SHMALL are upper limits are defaults which can
* be increased by sysctl
*/
#define SHMMAX 0x2000000 /* max shared seg size (bytes) */
#define SHMMIN 1 /* min shared seg size (bytes) */
#define SHMMNI 4096 /* max num of segs system wide */
#define SHMALL (SHMMAX/PAGE_SIZE*(SHMMNI/16)) /* max shm system wide (pages) */
#define SHMSEG SHMMNI /* max shared segs per process */
Отсюда видно, что SHMALL по умолчанию равен 8G и на машинах с <8G вообще никакой роли не играет. Вот тольуо что будет, если на машине с 1G ОЗУ и 2G swap запросить 192 сегмента shared memory (т.е. 6G) ? Кто знает?
Остаётся один вопрос: Стоит ли в моей ситуации уменьшать SHMALL до 128 мегов?