Я запускаю 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, которое обрабатывает много краткосрочных запросов многих пользователей).
Спасибо