ОК, это на серии очень загруженных серверов Apache 2.4 с использованием prefork MPM, за AWB ELB. Поскольку мы отстаем от ELB, глупо не иметь keepalives, однако мы бы хотели, чтобы дочерние процессы регулярно перерабатывались. Прежде чем включать keepalives, настройка MaxConnectionsPerChild справилась с этим. Но с keepalives, по существу, существует только одно соединение, поэтому MaxConnectionsPerChild будет несколько неэффективным. FWIW, серверы слишком заняты для KeepAliveTimeout или похожи на то, что когда-либо пинают - обычно они получают несколько сотен запросов в секунду, 24/7, по существу, без простоя.Взаимодействие между MaxKeepAliveRequests и MaxConnectionsPerChild
Кроме того, почти все запросы являются атомарными без последующих запросов на изображения, CSS и т. Д. Настоящая причина сохранения в том, что все соединения связаны с одним источником, балансировщиком нагрузки.
Так вот вопрос ... Мы думали, что для того, чтобы время от времени рецикла дочерних процессов, мы могли бы использовать настройки, как это:
KeepAlive On
KeepAliveTimeout 20
MaxKeepAliveRequests 1500
MaxConnectionsPerChild 4
Опять же, KeepAliveTimeout не имеет в принципе никакого эффекта. Поэтому мышление заключается в том, что при этой настройке постоянное соединение будет сбрасываться каждые 1500 запросов, а затем после 4 сбрасываний ребенок будет перерабатываться, то есть; перерабатывайте дочерний процесс каждые 6000 запросов. Однако это приводило к тому, что дочерние процессы перерабатывались примерно раз в минуту, что не соответствовало уровню трафика. В качестве теста мы изменили настройки на:
KeepAlive On
KeepAliveTimeout 20
MaxKeepAliveRequests 6000
MaxConnectionsPerChild 4
Ожидая четырехкратного увеличения продолжительности жизни ребенка. Тем не менее, детские процессы теперь циклируются каждые 50 секунд до 2 минут без видимой картины.
Я начинаю думать, что эти две настройки не взаимодействуют, как я думал, они это сделали. Какие-нибудь идеи в этом? И/или метод «лучшей практики» для обеспечения периодической переработки детских процессов в этой ситуации?
Вам посчастливилось выяснить это? – Eric
Нет. И никаких ответов здесь (очевидно). –