我对Apache2.2.15 (CentOS 6.x x64)产生了问题,导致内存负载过高,消耗了8GB交换空间的100%,加载平均值超过125。VM是一个Azure A2 VM (2 vCPU,3.5GBRAM)。这已经很好的工作了很长一段时间,我的流量并没有发生太大的变化,每个WordPress的统计。此服务器还承载了MySQL 5.5.43 x64,但这是在非常低的负载下。我还使用Predis与Azure一起缓存大部份 WordPress站点。最后,我使用的是mod_fcgid和php5_module (这是正确的,还是只需要mod_fcgid?)
我尝试过的事情:
从预制件移动到工人MPM。
更改了员工MPM的参数:
StartServers 3
MaxClients 150
MinSpareThreads 15
MaxSpareThreads 100
ThreadsPerChild 25
MaxRequestsPerChild 500
减少加载模块的#
关闭KeepAlive (刚刚尝试了这个,所以等待结果,但它看起来并不乐观)
最终,Apache进程只会耗尽所有内存,然后使用交换。
还有进一步的建议吗?FWIW,我的WordPress站点在正常的一天中看到了大约600-800次点击量,1100是我的最高值,但在那个时候我没有任何这些问题,而仍然使用prefork。
编辑:找到https://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-centos-5.2,并遵循这篇文章,修改php.conf。mod_php不再出现在apachectl -t -D DUMP_MODULES中。
发布于 2015-04-25 16:51:55
修复方法是按照https://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-centos-5.2上的说明进行操作。注释掉php.conf中的所有内容。之后,mod_fcgi接管了它自己的进程中的php处理,而不是在Apache的进程中。
https://serverfault.com/questions/684701
复制相似问题