Для сетевых приложений, которые создают по одному потоку на каждое соединение (например, Pound), threadcount может стать узким местом для количества одновременных подключений, которые вы можете серверить.
Я использую FreeBSD 8 x64:
$ sysctl kern.maxproc
kern.maxproc: 6164
$ sysctl kern.threads.max_threads_per_proc
kern.threads.max_threads_per_proc: 1500
$ limits
Resource limits (current):
cputime infinity secs
filesize infinity kB
datasize 33554432 kB
stacksize 524288 kB
coredumpsize infinity kB
memoryuse infinity kB
memorylocked infinity kB
maxprocesses 5547
openfiles 200000
sbsize infinity bytes
vmemoryuse infinity kB
pseudo-terminals infinity
swapuse infinity kB
Я хочу увеличить kern.threads.max_threads_per_proc
до 4096. Предполагая, что каждый поток начинается с размером стека 512 КБ, что еще мне нужно изменить, чтобы я не поливал свою машину струей воды?
FWIW, я установил для kern.threads.max_threads_per_proc значение 4096 без изменения каких-либо других настроек и не заметил никаких побочных эффектов. Паунд даже попадал туда пару раз (съедая при этом 2 ГБ ОЗУ).