Очереди приложения Wicket Apache mod_jk — AJP заполняются!

#java #apache #jboss #wicket #mod-jk

#java #apache #jboss #wicket #mod-jk

Вопрос:

У нас есть Java-приложение на базе Wicket, развернутое в кластере производственных серверов с использованием Apache (2.2.3) с mod_jk (1.2.30) в качестве компонента балансировки нагрузки с фиксированным сеансом и Jboss 5 в качестве контейнера приложения для Java-приложения.

Мы постоянно наблюдаем проблему в нашей производственной среде, когда наши очереди AJP между Apache и Jboss, как показано в консоли JMX, заполняются запросами до такой степени, что сервер приложений больше не принимает никаких новых запросов. При рассмотрении всех задействованных компонентов системы (общий трафик, база данных загрузки, база данных списка процессов, загрузка всех узлов кластеризованного сервера приложений) ничто не указывает на проблему с пропускной способностью, которая могла бы объяснить, почему вызовы останавливаются в очереди AJP. Вместо этого все системы кажутся достаточно простаивающими.

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

Мы пытаемся выяснить, почему очереди заполняются до такой степени, что конечному пользователю не возвращаются никакие вызовы, хотя система не находится под высокой нагрузкой.

Кто-нибудь еще сталкивался с подобными проблемами?

Существуют ли какие-либо другие системные показатели, которые мы должны отслеживать, которые могли бы объяснить поведение очереди?

Является ли это потенциально проблемой mod_jk? Если да, целесообразно ли заменить mod_jk на mod_cluster для решения проблемы?

Мы высоко ценим любые советы. Если я могу предоставить дополнительную информацию для устранения неполадок, я был бы более чем готов это сделать.

/Ben

Комментарии:

1. Рассмотрим mod_cluster ( jboss.org/mod_cluster ) вместо mod_jk для JBossAS 5 , предполагается, что это намного проще для правильной работы, хотя я сам этого не пробовал (все еще застрял на AS 4.3 ….)

Ответ №1:

Это очень похоже на ситуацию тупика.

Я бы проверил количество подключений tomcat: если они также максимальны, то можно почти на 100% быть уверенным, что это связано с приложением или базой данных.

Когда это произойдет, проверьте, нет ли блокировок в базе данных. Это может дать подсказку.

Если вы используете сеансовые компоненты с отслеживанием состояния в серверной части, я бы внимательно посмотрел на них.