Jboss через некоторое время замедляется

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

Подробно: У меня есть установка с JBoss 5.1.0-GA и Java 1.6.0_18-b07 (x64), работающая на 64-битном RHEL 4. Аппаратное обеспечение представляет собой виртуальную машину с 8-ядерным процессором Xeon X5550 / 20G.

Продукт, развернутый в JBoss, содержит веб-сервис, на котором выполняется тест на выносливость. Никакая база данных не участвует в процессе.

Тесты выполняются с использованием soapui с 4 потоками, и тесты настроены на использование 20% ЦП.

Предположим, сначала среднее время ответа составляет 300 мс. Через 2 дня время отклика составляет 600 мс, чего я не понимаю. Конечно, я сделал несколько проверок:

  • Утечек памяти нет (подтверждено с помощью jprofiler)
  • Память в куче всегда составляет около 25-50%, постоянное использование пространства - 50%
  • Сборщик мусора почти никогда не занят
  • Все потоки простаивают после проверки дампа потока

Пока я проводил некоторые дальнейшие исследования, я сделал профиль процессора с помощью JProfiler в начале (когда он все еще быстрый) и на (медленном) конце. Тогда я вижу, что каждый звонок на 100% медленнее! Даже вызов простой карты # put (). (количество вызовов и содержание этих карт одинаковы). При запуске профилировщика нет никаких признаков заблокированных потоков, только запущенные потоки.

Кто-нибудь знает, что вызывает снижение производительности? Спасибо!


Обновление:

решил проблему снижения производительности, обновив версию Java до 1.6.0_24!

Пока вариантов не было, я просмотрел все примечания к выпуску java vm и обнаружил исправление производительности и надежности в 1.6.0_23. См. Также Примечания к выпуску 1.6.0_23

После обновления jvm производительность остается прежней и не снижается в течение нескольких дней.

17
задан Jan Hoeve 31 March 2011 в 13:29
поделиться