Во-первых, просто немного фона:Шипы Использование CPU в WebSphere 6.1
Один из наших клиентов испытывает CPU спайки использования для WebSphere экземпляров, работающих под управлением одной из наших веб-приложений (другие примеры с другими приложениями в порядке) , У них есть тестовая среда и живая среда (оба iSeries), которые оба испытывают проблему - с одним приложением для каждого экземпляра. Мы развернули это приложение локально в наших собственных тестовых средах, а также для многих других клиентов на iSeries без подобных проблем.
Что происходит на самом деле:
Каждый второй или около того, использование процессора для WebSphere процесса использования процессора подскакивает в любую из 7%
- 20%
, даже если нет никаких запросов, обрабатываемые в данный момент. Клиент сообщил о том, что пики достигают 30%
. Эти шипы в среднем составляют 1.5%
процессора в целом - другие экземпляры WebSphere обычно используют 0%
- 0.1%
при простоях.
Мои исследования до сих пор
Таким образом, я имел взгляд на резьбе. В одном потоке в тестовой среде использовался ~350
процессорных циклов в секунду. Аналогичная нить в их живом окружении использовала ~1500
циклов ЦП в секунду (показывая, что у нее большой процессор). Стек вызовов для этих потоков выглядит
Type Program Statement Procedure
QLESPI QSYS 17 LE_Create_Thread2__FP12crtt >
QJVALIBJVM QSYS 7 startThread__FPv
J com/ibm/ws/util/Threa > run
J com/ibm/ws/util/Threa > run
J com/ibm/ws/util/Threa > getTask
J com/ibm/ws/util/Bound > poll
полное имя класса из нижней строки com/ibm/ws/util/BoundedBuffer
. Я попросил клиента, чтобы сделать JVM Dump для меня - только дополнительная информация, которую я получил от этого было название темы:
Thread: 00002F82 Deferrable Alarm : 11
Теперь мои вопросы:
- из вас может определить проблема, учитывая эти симптомы? (Возможно, это длинный выстрел!)
- Что такое
Deferrable Alarm
? Из JVM Dump я вижу 4 потока с этим именем. Остальные трое, похоже, все в порядке. Отлаживая мою локальную WebSphere (в Windows) и добавляя точки останова в классеBoundedBuffer
, я вижу, чтоBoudedBuffer
s опроса и периодического вызова некоторого прослушивателя. - У меня нет доступа к консоли WebSphere для клиентских машин, и они не имеют права на внесение каких-либо изменений в конфигурацию. Я могу попросить их проверить консоль для меня, хотя, что я должен просить их посмотреть?
- У меня есть telnet-доступ к ящикам клиента, есть ли что-нибудь еще, что я могу исследовать здесь? Глядя на файлы профиля WebSphere и т. Д.? На какие файлы я должен смотреть?
- Поскольку в стеке вызовов и JVM Dump явно не указывается наш код, можно ли предположить, что это проблема конфигурации?
Это был долгий вопрос, поэтому спасибо за то, что вы читаете это далеко.
30 Update апреля (1)
Этим утром я заметил, что такое поведение происходит только после первого запроса дня был обработан (независимо от того, который веб-службы вызывается). Это указывает пальцем на наше приложение или Apache Axis. Может быть, это просто нормальное поведение ?!
30 Update апреля (2)
Таким образом, кажется, что эта активность процессора является своего рода деятельности домашнего хозяйства для веб-контейнера или может быть что-то внутри Apache Axis. Я заметил, что это происходит на нескольких разных веб-приложениях на нескольких разных серверах. Приложения, не имеющие веб-компонента, не страдают от дополнительных расходов процессора.
Я бы предположил, что если это домашняя работа, что «настройка» ее каким-то образом может быть продуктивной продукцией - я имею в виду, что упростить работу сервера приложений, вероятно, отрицательно повлияет на количество «реальной» работы, которую он может делать.
Является ли это клиентами iSeries на том же уровне, что и ваши другие клиенты? Существуют ли другие отличия, которые делают этот уникальный? – Ichorus
Да, это тот же уровень. Это также происходит на WebSphere 5.1, а также на 6.1 –