增加FreeBSD线程

对于每个连接创build一个线程的networking应用程序(如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.假设每个线程以512k的堆栈大小开始,还有什么我需要改变,以确保我没有软pipe我的机器?

FWIW,我将kern.threads.max_threads_per_proc设置为4096而不修改任何其他设置,并没有看到任何不良影响。 庞德甚至有几次(在这样做的时候吃了2GB的内存)。