我正在使用基于Apache的ibm http服务器。当我尝试将参数ThreadsPerChild增加到1000以上时,http服务器始终仅启动1000个工作线程。以下是相关信息:

错误日志:


[2012年7月5日星期四10:50:45] [调试] mpm_winnt.c(564):孩子9040:从父级检索到2个侦听器
[2012年7月5日星期四10:50:45] [注意]儿童9040:获取了启动互斥量。
[2012年7月5日星期四10:50:45] [注意]儿童9040:启动了1000个工作线程。
[2012年7月5日星期四10:50:45] [注意]子9040:启动线程以侦听端口81。
[2012年7月5日星期四10:50:45] [通知]子级9040:启动线程以监听端口80。


httpd.conf

<IfModule mpm_winnt.c>
  ThreadLimit 2048<br>
  ThreadsPerChild 2000
  MaxRequestsPerChild  0
</IfModule>


IHS 7.0.0.0
操作系统winNT

顺便说一句,ThreadsPerChild的另一个问题是一个Apache线程是在这里处理一个客户端连接,还是一个线程可以处理多个客户端连接?

请帮帮我。

非常感谢

最佳答案

在ThreadsPerChild设置的限制上,引用IBM HTTP Server Performance Tuning


在64位Windows操作系统上,每个实例仅限于大约
2500个ThreadsPerChild。在32位Windows上,此数字更接近
5000。这些数字不是精确的限制,因为实际限制是每个线程的固定内存启动成本之和+
每个线程的最大运行时内存使用情况,具体取决于
配置和工作量。提高ThreadsPerChild并接近
这些限制限制了运行时内存使用情况下子进程崩溃的风险
使进程地址空间超过2GB或3GB。


这里要注意的有趣一点是ThreadsPerChild并不是调整与IHS的并发连接的唯一参数。您可以在以下链接中找到有关其他参数(例如maxClients)和调整方法的信息;

Tuning IBM HTTP Server to maximize the number of client connections to WebSphere Application Server

10-08 06:30