Prefork MPM配置不在httpd.conf中

时间:2016-04-16 12:16:32

标签: apache amazon-ec2 preforking

我的EC2 Micro实例存在内存问题,导致它终止我的MySQL进程。

我已经阅读了很多关于调整Apache以限制内存消耗的内容,并希望编辑Prefork MPM设置。 Catch是 - 当我进入httpd.conf时,我没有提到任何MPM模块。

我一直在环顾四周,我能找到的唯一参考是在/etc/httpd/conf.modules.d/00-mpm.conf中我可以看到prefork模块应该被加载。 (LoadModule mpm_prefork_module modules / mod_mpm_prefork.so)

当我执行httpd -l时,未列出prefork.c。

此时我不确定是否使用apache加载/编译模块,如果是 - 如何配置它。感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以检查哪个MPM正在运行:

httpd -M | grep mpm

你会看到类似的东西:

mpm_prefork_module (shared)

所有MPM(prefork,worker,event)都是根据您提到的文件配置的:

/etc/httpd/conf.modules.d/00-mpm.conf

我很确定AWS只使用默认设置,因此除了加载模块之外什么都没有。您可以继续添加设置。 e.g。

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

StartServers           5
ServerLimit            256
MaxRequestWorkers      256
MaxConnectionsPerChild 0

您可以查看https://httpd.apache.org/docs/2.4/mod/mpm_common.html以获取更多选项。

我也有内存问题,并考虑配置MPM来解决问题,但它只是减少了问题,并没有完全解决问题。

我最终使用以下设置环境变量:

export USE_ZEND_ALLOC=0

自那以后我没有记忆问题。