2016-02-29 3 views
1

Максимальное количество потоков в моей системе linux - 93946. Я получил это значение от cat /proc/sys/kernel/threads-max. Но когда я создаю вокруг 32768 потоков Я получил ошибкуМаксимальное количество потоков, разрешенных для запуска

cannot create new native threads 
  • Как я могу создать максимальное количество потоков (около 93946)?

  • Если невозможно создать максимальное количество потоков (93946), как я могу найти максимальное количество потоков, разрешенных для запуска?

+0

Вы пытаетесь создать 93946 потоков в один только процесс? – purplepsycho

+0

Если вы рискуете оказаться бесполезным, я бы сказал, что все, что требует десятков тысяч нитей, которые не работают в какой-то чудовищной многопроцессорной системе, вероятно, делает что-то очень неправильное. Тем не менее, это не похоже на необоснованный вопрос сам по себе;) – Rook

+0

Моя цель - найти максимальное количество потоков, поэтому я запускаю демонстрационную программу, которая создает бесконечное число потоков. В реальной среде у меня есть несколько процессов. –

ответ

0

, пожалуйста, проверьте/proc/sys/kernel/pid_max. Поскольку потоки имеют собственный pid, это значение также ограничивает максимальное количество потоков.

1

Вы можете найти максимальную нить с командой:

sysctl -a| grep kernel.threads-max 

Редактировать файл /etc/sysctl.conf и добавить новое значение изменения

kernel.threads-max = 93946 

сделать эффективным с sysctl -p

+0

Отредактировано /etc/sysctl.conf, но такой же результат. –

Смежные вопросы