欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

apache假死怎么解决?

程序员文章站 2024-01-10 10:17:16
...

apache假死的解决方法:首先在apache的“httpd.conf”文件中启用MPM模块配置文件;然后修改MPM模块配置“http-mpm.conf”文件中的相关配置即可。

apache假死怎么解决?

Apache每隔一段时间就死掉,假死,装死,不要脸的死,只能重启正常

服务器这几天每隔一段时间就死,须重启才能生效,查看Apache错误日志是这样

[Tue Dec 12 06:57:23.570079 2017] [mpm_winnt:error] [pid 5172:tid 5380] AH00326: Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
[Tue Dec 12 08:52:21.244119 2017] [mpm_winnt:crit] [pid 5172:tid 1272] AH02538: Child: Parent process exited abruptly. Child process is ending
[Tue Dec 12 08:52:28.069576 2017] [mpm_winnt:notice] [pid 5668:tid 1372] AH00418: Parent: Created child process 4716
[Tue Dec 12 08:52:31.664441 2017] [mpm_winnt:notice] [pid 4716:tid 1272] AH00354: Child: Starting 150 worker threads.

查一下报错表示进程的线程数不够用,可以修改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模块配置文件

在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf 的配置文件。该文件主要用于进行MPM模块的相关配置 我们需要在httpd.conf文件中启用该配置文件

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号"#")

修改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>

重启,这两天没出现,等等

更多相关知识,请访问 PHP中文网!!

相关标签: apache 假死