Назад | Перейти на главную страницу

Скачки памяти Apache, возможные причины?

В прошлую пятницу (07.10.2011) мы начали увеличивать процессы httpd.worker с типичных 10-15 МБ зарезервированной памяти до 10 ГБ + (гигабайт) за 1-2 минуты. Это, очевидно, останавливает сервер, поскольку он начинает подкачку и т. Д. Мы должны перезагрузить сервер, чтобы он снова заработал. Если мы поймем его вовремя, мы сможем убить нарушившего httpd.worker, и пока все будет хорошо.

Система

Симптомы

Дополнительные замечания

Вопросы

Конфигурация Apache / mod_jk / Tomcat (JbossWeb)

Из httpd.conf ...

<IfModule worker.c> 
StartServers         2 
MaxClients         500 
MinSpareThreads     25 
MaxSpareThreads    150
ThreadsPerChild     50 
MaxRequestsPerChild  250 
</IfModule>

Из worker.properties mod_jk ...

# Define Node1 worker.node1.port=8009
worker.node1.host=127.0.0.1 worker.node1.type=ajp13
worker.node1.lbfactor=1 worker.node1.connection_pool_timeout=60
worker.node1.connection_pool_size=35 worker.node1.connect_timeout=5000
worker.node1.prepost_timeout=5000

Из tomcat server.xml ...

<Connector protocol="AJP/1.3" port="8009"
address="${jboss.bind.address}" redirectPort="8443" maxThreads="350"
connectionTimeout="60000" enableLookups="false"/>

Буду признателен за любой вклад!

Мы официально обнаружили и исправили проблему, это был просто цикл в наших правилах mod_rewrite. Он существовал в течение нескольких месяцев, но никто не попал по конкретному URL-адресу, который вызвал проблему. Это, по крайней мере, один из примеров, которые могут привести к выходу отдельного процесса httpd.worker из-под контроля с потреблением памяти.