что вызывает тайм-аут 504 Gateway в mod_jk с tomcat7 и apache2?

Я запускаю tomcat 7 с apache 2.2 и mod_jk 1.2.26 на сервере debian-lenny x64 с 2 ГБ ОЗУ, 8 ГБ подкачки и процессором Intel Xeon X3330. У меня есть приложение GWT, которое использует пул соединений для взаимодействия с серверной базой данных mysql. это приложение должно обрабатывать много запросов, но обработка каждого запроса занимает немного времени (предположим, 1 секунду), а затем оно должно освободить выделенные ресурсы для использования другими запросами. Количество одновременных клиентов может увеличиться более чем на 200 во время выбора, но обычно меньше 100.
Apache настроен в режиме prefork-mpm со следующими конфигурациями:

<IfModule mpm_prefork_module>
    StartServers       8
    MinSpareServers    5
    MaxSpareServers   20
    MaxClients       256
    MaxRequestsPerChild  2000
</IfModule>

и это мой файл worker.properties:

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

worker.worker1.lbfactor=1
worker.worker1.connect_timeout=6000
worker.worker1.prepost_timeout=6000
worker.worker1.connection_pool_size=256
worker.worker1.connection_pool_minsize=64
worker.worker1.connection_pool_timeout=60
worker.worker1.reply_timeout=1000
worker.worker1.retries=5

worker.worker1.fail_on_status=-500

worker.worker1.cachesize=64
worker.worker1.cache_timeout=60

и это конфигурация соединителя tomcat в server.xml:

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"  connectionTimeout="60000" maxThreads="256" acceptorThreadCount="2" />

Теперь проблема в том, что некоторые из моих запросов приложений завершаются с ошибкой 504 time-out шлюза. Я изменил и протестировал многие настройки, все вышеперечисленные файлы конфигурации, но не смог получить стабильное состояние. Кроме того, после нескольких часов работы tomcat многие запущенные приложения на сервере вылетают с ошибкой, связанной с форком новых процессов и утечкой системных ресурсов (я работаю на VPS, но я уверен, что у меня достаточно ресурсов и даже больше, чем мне нужно для запуска такого приложения, поэтому я уверен, что проблема только из-за плохих конфигураций apache, tomcat и mod_jk).
Есть идеи? пожалуйста, предложите идеальную конфигурацию для mpm_prefork, рабочих свойств mod_jk и настроек коннектора tomcat с учетом этой пространственной ситуации (я имею в виду именно то, что у нас есть приложение ajax, которое обрабатывает много краткосрочных запросов многих пользователей).
Спасибо


person Ehsan Khodarahmi    schedule 03.11.2012    source источник