Моя ситуация следующая: мы запускаем Magento Professional на экземпляре оперативной памяти 15 Гбайт, в стойке.
При запуске htop мы могли видеть, что «apache2 -k start» продолжает порождать больше дочерних процессов, некоторые из них съедают ~ 900 МБ памяти.
Когда память почти исчерпана, время ожидания всех сайтов истекает или становится очень медленным. Когда память израсходована, кажется, что некоторые из этих процессов были остановлены, чтобы освободить память.
Затем происходят те же процедуры.
У меня вопрос, можем ли мы настроить ubuntu / apache для отключения дочерних процессов и освобождения памяти, когда использование памяти достигает 85-90%?
Из того, что я нашел об OOM OOM:
когда выбрана родительская задача, убийца oom вместо этого пожертвует дочерними элементами первого поколения с отдельными адресными пространствами, если это возможно. Это предотвращает убийство серверов и важных системных демонов и снижает минимальный объем работы.
Как вы определяете, что дочерние процессы Apache не убиваются первыми? Возможно, что OOM убивает дочерний процесс, но система все еще не вышла из строя, и ей нужно убить другой дочерний процесс (в зависимости от того, сколько порождено) (я не являюсь сильным пользователем apache, поэтому я не знаю подробно, как apache адресное пространство обрабатывается среди его дочерних процессов)
Во-вторых, это из раздела настройки Apache Docs Настройка Apache:
Вы можете и должны контролировать настройку MaxRequestWorkers, чтобы ваш сервер не порождал так много дочерних элементов, что он начал обмениваться местами. Я бы посмотрел на то, что предлагал Давидго.
Надеюсь, это поможет.