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

Apache2 mod_jk LoadBalancer + Tomcat7 - Настройка производительности

у нас очень высоконагруженная система с примерно 8,5 миллионами пользователей в день. На самом деле у нас есть 8 Apache2 Loadbalancer (Ubuntu 10.04.3 LTS x64 через DNS-RoundRobin), которые отправляют трафик через AJP1.3 20 рабочим. На этих воркерах наше самописное приложение Grails-Web работает на сервере tomcat7 + java7 (Ubuntu 11.10 x64). Приложение регистрируется в локальной базе данных postgresql 9.1. Все серверы размещены на Hetzner Germany и оснащены процессором Intel® Core ™ i7-2600 с 16 ГБ оперативной памяти и жестким диском Raid 1 емкостью 2x3 ТБ.

В прайм-тайм (с 18 (вечера) до 12 (вечера)) у нас иногда возникают серьезные проблемы с производительностью, но проблема не в оборудовании. ЦП работает максимум на 50%, максимальная нагрузка. 2,5, а ОЗУ использовалось максимум 3-4 ГБ. Но я понятия не имею, в чем проблема.

Вот отрывок из моего server.xml:

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector  port="8009"
            protocol="AJP/1.3"
            maxThreads="5000"
            minSpareThreads="25"
            maxSpareThreads="75"
            acceptCount="200"
            redirectPort="8443"
            connectionTimeout="60000"
            debug="4"
/>

На пике Tomcats обрабатывает 400-450 доступов в секунду. Есть ли у кого-нибудь советы, как оптимизировать производительность Apache + mod_jk + tomcat7?

Я предполагаю сборку мусора - это может вызвать узкие места на загруженных серверах Java. Изучили ли вы свои журналы сборки мусора, чтобы понять, какие задержки возникают? Какие у вас настройки сборки мусора