公司服务器最近老挂。。(windows+apahce 4G)
看了apache的错误日志
[mpm_winnt:error] [pid 4044:tid 10164] AH00326: Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
1 :如果不确定具体的模式也可以首先查看apache的运行模式,查看命令:httpd -l
Compiled in modules:
core.c
mod_win32.c
mpm_winnt.c
http_core.c
mod_so.c
可以看到运行模式是winnt模式。
2:修改apache 的httpd-mpm.conf 配置
打开 apache2/conf/extra/httpd-mpm.conf ,每个机器可能httpd-mpm.conf 可能不同,这里可以通过find 命令查询。
3:以mpm_winnt模块为例说明,mpm_winnt模是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。
对于Windows系统,默认会使用mpm_winnt,即:
ThreadsPerChild 150
MaxRequestsPerChild 0
建议的设置:
ThreadsPerChild 250
MaxRequestsPerChil