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