Конфигурация 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
У меня не было проблем с памятью с тех пор.