Итак, как выделить разделяемую память, я уже писал (
Как посчитать shmmax и shmall), теперь об основной для процесса, ulimit в данном случае не рассматриваем.
Во-первых, необходимо поставить минимальный своп, чтобы процессы не сыпались в него.
vm.swappiness = 1
Во-вторых, обратить внимание на этот параметр
vm.max_map_count = 524288
в данном случае ограничение в 32Гб.
Прошу дополнять и поправлять.