apache - Prefork MPM 配置不在 httpd.conf 中

标签 apache amazon-ec2 preforking

我的 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/

相关文章:

django - 从 Django/Python3 部署到 Google Compute Engine 管理的虚拟机

php - 在 Linux 上安装 PHP 和 php.ini 文件

Ruby readpartial 和 read_nonblock 不抛出 EOFError

sockets - 做socket编程时accept函数有必要使用锁吗?

c - FastCGI 在 c 中的分支

java - 无法访问互联网的服务器上的 Tiles DTD 解析失败

apache - 错误 : AH00543: httpd: bad user name - Xampp/Apache

linux - SVN 提交后 Hook 发布网站?

ubuntu - 我应该把什么作为我的 'Group' 放在 gunicorn 服务文件中

python - 在 amazon ec2 上配置主管,给出生成错误未知错误,为 'app_name' : EACCES 制作调度程序