PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 服务器 > Web服务器 > 正文

    Apache崩掉:Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:[Mon Aug 14 10:47:19.644531 2017] [mpm_winnt:error] [pid 5776:tid 4144] AH00326: Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
    具体问题:
    查看错误日志\Apache\logs,找到关键报错:

    [Mon Aug 14 10:47:19.644531 2017] [mpm_winnt:error] [pid 5776:tid 4144] AH00326: Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
    报错表示进程的线程数不够用,可以修改ThreadsPerChild,即每个子进程开启的并发线程数。

    报错分析:
    Apache针对不同的操作系统提供了多个不同的MPM模块,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。
    Windows操作系统上默认的MPM模块是mpm_winnt,mpm_winnt模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。
    在对Apache的MPM模块具备一定了解后,我们就可以针对不同的MPM模块来修改Apache的最大并发连接数配置了。

    报错解决:
    修改MPM模块配置

    1 启用MPM模块配置文件

    在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf的配置文件。该文件主要用于进行MPM模块的相关配置。不过,在默认情况下,Apache的MPM模块配置文件并没有启用。因此,我们需要在httpd.conf文件中启用该配置文件,如下所示:

    # Server-pool management (MPM specific)
    Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号"#")
    2 修改MPM模块配置文件中的相关配置

    修改http-mpm.conf文件

    #由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。

    <IfModule mpm_winnt_module>
    ThreadsPerChild      521 #默认值是150,推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
    MaxRequestsPerChild    3000 #推荐设置:小=10000 中或大=20000~100000
    </IfModule>
    3 重启phpstudy,启动成功了,接下来几天是观察时间了;有错的话再更新文章!
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-122-5915-1.html
    相关热词搜索: