Среднее число одновременных пользователей на Tomcat

StackOverflow https://stackoverflow.com/questions/1812691

Вопрос

Я делаю стресс-тест с JMeter в веб-приложении (построено с использованием Spring, Struts2 REST, использует PostgreSQL).

Я моделирую сценарий типичного пользователя с моим приложением:

4 GET, 3 INSERT, 20 вызовов UPDATE.

Характеристики сервера:

4-ядерный Intel Xeon X5365 3GHz

8 ГБ ОЗУ

одиночный диск SATA емкостью 320 ГБ

ОС: Ubuntu 8.10 32bit

БД: Postgresql 8.4

Tomcat 6.0.18

Java 1.6.0_14

Результаты показывают, что сервер будет обрабатывать около 130 одновременных транзакций. Возможно ли это число? Есть ли результаты онлайн для сравнения с моими?

Это было полезно?

Решение

Узкое место будет в вашей базе данных, поэтому его очень трудно сравнить, не зная производительности вашей базы данных.

У нас есть похожий компьютер (за исключением 16 ГБ ОЗУ и Tomcat 5.5). При пиковой нагрузке он может легко обслуживать 256 одновременных соединений. Мы обсуждаем вопрос об изменении maxThreads на 512.

Некоторые советы по настройке,

<Ол>
  • Если вы запускаете Apache в качестве внешнего интерфейса, используйте mod_jk . Его производительность намного лучше, чем у mod_proxy .
  • Если вы обслуживаете HTTP напрямую или используете mod_proxy, используйте соединитель NIO в Tomcat 6.
  • Убедитесь, что ваш пул потоков (maxThreads) достаточно большой, по умолчанию только 200.
  • Сделать Tomcat без состояния. Особенно, не используйте HttpSession. Состояние может вызвать утечку памяти в приложении и постепенно ухудшать производительность. Отправьте все свои данные в базу данных или клиенту (куки).
  • Использовать пул баз данных (DBCP). У нас есть MySQL, драйвер JDBC очень болтлив.
  • Если вы запустите один экземпляр JMeter, он может стать узким местом. Запускать несколько ведомых из разных сетей, чтобы имитировать реальную производственную нагрузку.
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top