Конфигурация Prefork MPM отсутствует в httpd.conf

У меня проблема с моим экземпляром 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, и если это так - как его настроить. Цени любую помощь!

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

У меня не было проблем с памятью с тех пор.

Другие вопросы по тегам