Я запускаю сервер Ubuntu 17.10 на VDS. Я запускаю на нем 3proxy. Проблема в том, что VDS каким-то образом не позволяет запускать более 5000 потоков на процесс, как я думаю. Я так думаю, потому что процесс 3proxy никогда не превышает 5000 потоков.
EDIT: ошибка, которую я вижу в журналах:
pthread_create():_Resource_temporarily_unavailable
Итак, я хочу проверить, правильно ли я прав, проверяя реальную ограничение потока на процесс. Моя идея - создать скрипт, который запустит столько потоков, сколько позволит система, и проверьте результат, сколько это будет.
И моя проблема в том, что я не знаю, как создать такой скрипт
Не существует потоков для каждого процесса!
Но существует ограничение на общее количество процессов в системе (потоки - это в основном просто процессы с общим адресным пространством в Linux)
cat /proc/sys/kernel/threads-max
По умолчанию используется номер страниц памяти, разделенных на 4. Вы можете увеличить это:
echo 100000 > /proc/sys/kernel/threads-max
Существует также предел процессов (потоков), которые может создать один пользователь, см. ulimit для этого, но это должно unlimited на Ubuntu.
Не существует потоков для каждого процесса!
Но существует ограничение на общее количество процессов в системе (потоки - это в основном просто процессы с общим адресным пространством в Linux)
cat /proc/sys/kernel/threads-max
По умолчанию используется номер страниц памяти, разделенных на 4. Вы можете увеличить это:
echo 100000 > /proc/sys/kernel/threads-max
Существует также предел процессов (потоков), которые может создать один пользователь, см. ulimit для этого, но это должно unlimited на Ubuntu.