2016-07-20 14 views
0

У нас есть среда WebSphere с 2 агентами узлов и 4 серверами приложений. При высоком трафике один из серверов приложений перестает отвечать на запросы, при этом он переходит к максимальному количеству потоков веб-контейнера.
При анализе дампа резьбы мы обнаружили, что около 60% потоков находятся в рабочем состоянии с 20% каждого состояния Wait и Parked.
Мы не видим предупреждения о тупике в дампе резьбы. На присматриваться мы обнаружили, что один из веб-контейнера нить имеет блокировку с сообщением ниже:Потоки веб-контейнера WebSphere зависают с максимальным состоянием потоков в runnable

Owns Monitor Lock on com/ibm/ws/classloader/[email protected] 

Может кто-то помочь с пониманием выше ошибки и ее разрешение?

+0

Вы видите ошибку в журналах Websphere? –

+0

Вы могли бы предоставить больше данных, таких как ошибки ffdc. –

+0

В журналах мы видим проблему или проблему масштабируемости с экземпляром базы данных. С большим объемом трафика мы видим, что время отклика базы данных увеличивается, скажем, от 1 сек до 5 секунд. Непосредственная интерпретация заключалась в том, что мы задыхались от базы данных, которая медленно и, в конечном итоге, приносила сервер приложений к максимальной емкости. Мы удвоили ресурсы в конце базы данных, но проблема все еще сохраняется. Теперь мы видим указанную выше ошибку в журналах дампов потоков. –

ответ

1

Важно посмотреть на трассировку стека, которая владеет блокировкой, а затем посмотреть на трассировку стека всех остальных потоков, ожидающих эту блокировку. Для ExtJarClassLoader почти наверняка означает, что все потоки пытаются выполнять операции loadClass. Если многие потоки пытаются это сделать и становятся заблокированными, это обычно означает, что текущий код пытается выполнить с ошибкой операции loadClass, перехватывая ClassNotFoundException и продолжая. Создание и отбрасывание ClassNotFoundException является дорогостоящим, поэтому код обычно должен быть изменен для кэширования общего результата (например, если он пытается выполнить последовательность нагрузок класса, положительный/отрицательный результат должен каким-то образом кэшироваться). Конечно, это будет сложно, если код, вызывающий loadClass, является сторонней библиотекой.

+0

Если вам нужна дополнительная помощь, запишите все файлы javacore вместе в один zip-файл и загрузите их на https://wait.ibm.com/, который будет анализировать потоки дампов и отчет, где приложение является узким местом. –

 Смежные вопросы

  • Нет связанных вопросов^_^