我正在使用基于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