【问题标题】:Prefork MPM configuration not in httpd.confPrefork MPM 配置不在 httpd.conf 中
【发布时间】:2016-08-08 10:11:33
【问题描述】:

我的 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 加载/编译,如果是 - 如何配置它。感谢任何帮助!

【问题讨论】:

    标签: apache amazon-ec2 preforking


    【解决方案1】:

    您可以检查正在运行的 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
    

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

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 2012-12-02
      • 2013-04-08
      • 2013-06-21
      • 1970-01-01
      • 2013-11-16
      • 2018-02-25
      • 2013-09-07
      • 2017-09-13
      相关资源
      最近更新 更多