Назад | Перейти на главную страницу

Увеличение количества потоков FreeBSD

Для сетевых приложений, которые создают по одному потоку на каждое соединение (например, 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 ГБ ОЗУ).