У меня есть веб-ферма, использующая Apache 2.2.15 и mod_perl-2.0.4. Мне нужно знать, есть ли сопоставимый модуль Perl для Apache::GTopLimit
для mod_perl-2.x.
Я искал в Google и на других сайтах и пока ничего не нашел. Что мне нужно сделать, так это ограничить объем памяти, который может потреблять любой рабочий. Если он превышает порог, то я хочу, чтобы рабочий умер.
Я уже установил MaxRequestsPerChild
значение, но это не мешает рабочему съесть всю память на коробке.
Для работников, которые являются отдельным процессом, ulimit
будет работать, чтобы остановить рост их памяти.
Если у вас есть рабочие процессы Apache, работающие со всей вашей памятью в mod_perl, у вас, вероятно, есть более серьезные проблемы с кодом вашего базового приложения. Вам не нужно вручную переключать воркеры Apache, если только ваше соотношение запросов и воркеров не очень низкое - в этом случае изменение этого соотношения путем уменьшения количества воркеров может помочь с вашей проблемой.
Помимо всего прочего, есть ли что-нибудь, что вам мешает просто apachectl graceful
-ing Apache каждые п часов? Это завершает работу всех существующих рабочих Apache, как только они становятся неактивными, порождает новых; это очень прямой подход к управлению рабочими процессами, если исправление основной проблемы mod_perl не является вариантом.