我的 EC2 Micro 实例存在内存问题,导致它终止我的 MySQL 进程。
我已经阅读了很多有关调整 Apache 以限制内存消耗的文章,并且正在寻求编辑 Prefork MPM 设置。问题是——当我进入 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 加载/编译,如果是 - 如何配置它。感谢任何帮助!
最佳答案
您可以检查哪个 MPM 正在运行:
httpd -M | grep mpm
您会看到如下内容:
mpm_prefork_module (shared)
所有 MPM(prefork、worker、event)都是从您提到的文件配置的:
/etc/httpd/conf.modules.d/00-mpm.conf
我相当确定 AWS 只使用默认设置,因此除了加载模块外什么都没有。您可以继续并添加您的设置。例如
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
从那以后我就没有内存问题了。
关于apache - Prefork MPM 配置不在 httpd.conf 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36664056/