我的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加载/编译模块,如果是 - 如何配置它。感谢任何帮助!
答案 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
自那以后我没有记忆问题。