Тюнинг ядра для IPv6 прокси

Тюнинг ядра для большого числа потоков

Настройка kernel.threads-max
Внимание, данная настройка проверена не работает на Ubuntu 16.04. Ubuntu устанавливает собственные параметры для kernel.threads-max мы не рекомендуем настраивать прокси на этой системе. Проверенной системой является Debian Jessie 8.0.

Кроме широкоизвестных параметров ulimit -n и ulimit -u количество потоков ограничено параметром sysctl kernel.threads-max. Этот параметр принимает максимальное значение, равное примерно количеству оперативной памяти в килобайтах/128 , если более точно — lxr.free-electrons.com/source/kernel/fork.c#L282. Изменить его нельзя, кроме как модификацией исходников ядра. На 8Gb оперативной памяти значение будет примерно такое kernel.threads-max = 62372, на 12Gb — kernel.threads-max = 95120

Итак, следует проверить чему равен параметр

sysctl -a | grep kernel.threads-max

Если нас не устраивает текущее значение, то следует добавить серверу оперативной памяти. Например, перейти на тариф Cloud16 vpsville.ru/cloud/

Настройка vm.max_map_count и kernel.pid_max
Дополнительно кол-во тредов лимитируется разрешенным кол-вом pid-ов в /proc/sys/kernel/pid_max (здесь значение не ограничено 65535) и кол-вом регионов памяти /proc/sys/vm/max_map_count, эти опции доступны для модификации и их нужно увеличивать до нужного размера.
Таким образом можно добиться количества потоков равного kernel.threads-max (в случае модифицированного ядра — и больше).

В /etc/sysctl.conf модифицировать параметры

vm.max_map_count=95120
kernel.pid_max=95120

И применить изменения командой
sysctl -p
  • 0
  • 18 мая 2016, 15:59
  • admin

Комментарии (2)

RSS свернуть / развернуть
«В /etc/sysct.conf модифицировать параметры» Ошибку исправьте /etc/sysctl.conf
0
Спасибо. Исправили.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.