Сервер Weblogic пытается подавить текущий рабочий поток и начинает обработку нового запроса - PullRequest
0 голосов
/ 19 июня 2011

У меня есть веб-приложение, развернутое на Weblogic 9.2 с балансировкой нагрузки на прокси-сервер, выполненной Apache.Я могу наблюдать, что при обработке нового запроса возникает пауза при поступлении нового запроса. Это наблюдается только в условиях пиковой нагрузки.Время ожидания достигает 6-7 секунд, а затем запускается текущий поток.Это поведение выводится из журналов приложений.Приложение использует настройки менеджера работы по умолчанию.Мы также используем собственный менеджер работ в нашем приложении.Параметры системы в порядке.Менее 50% циклов ЦП, памяти и даже ГХ занимает менее 2 секунд.Никаких исключений в логах тоже не наблюдалось.Монитор потоков не показывает застрявшие темы.Что может быть причиной?Текущий поток перемещен в более низкий приоритет?

Ответы [ 2 ]

1 голос
/ 20 июня 2011

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

Как вы подтверждаете, что текущие потоки ждут 6 - 7 секунд? В идеале возьмите несколько дампов потока в пиковое время (используя kill -3 <pid> в Unix) и посмотрите, что все эти ожидающие потоки делают?

Я не вызываю эти застрявшие потоки, но на каком-то ресурсе может возникнуть конфликт (обычно виновником является база данных или внешний вызов, такой как веб-служба)

Есть ли у вас сценарий, когда есть какая-то нисходящая система, которую вы вызываете, и иногда эта система не может справиться с пиковой нагрузкой.

Берите 4 или 5 наборов дампов с интервалом в 5 секунд между каждым. таким образом, в конце у вас будет один лог-файл, который требует около 20-25 секунд действия на сервере приложений.

Затем вы должны проверить, хотите ли вы проверить, происходит ли длительная транзакция, все дампы потоков покажут, что определенный идентификатор потока находится на той же строке в трассировке стека Java. Проще говоря, транзакция (скажем, в EJB или базе данных) охватывает несколько дампов потоков и, следовательно, требует дополнительного изучения.

Как часто GC занимает 2 секунды?

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

0 голосов
/ 01 июля 2011

Наконец-то нашел решение. Сервер приложений weblogic был настроен с настройками менеджера работы по умолчанию. Это было изменено на размер на основе наших одновременных запросов, 100 в качестве начальной емкости. Также убедитесь, что пул соединений с базой данных имеет соответствующие соединения, доступные из пула. Как только эти конфигурации были установлены, проблема не повторялась.

...