Пики использования процессора в WebSphere 6.1 - PullRequest
5 голосов
/ 29 апреля 2009

Сначала немного фона:

Один из наших клиентов испытывает скачки использования ЦП для экземпляров 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 для меня - единственной дополнительной информацией, которую я получил от этого, было имя потока:

Thread:  00002F82 Deferrable Alarm : 11

Теперь на мои вопросы:

  • Может ли кто-нибудь из вас определить проблему, учитывая эти симптомы? (Может быть, это длинный выстрел!)
  • Что такое Deferrable Alarm? Из дампа JVM я вижу 4 темы с этим именем. Остальные три, кажется, отлично справляются. Отладив мою локальную WebSphere (в Windows) и добавив точки останова в классе BoundedBuffer, я вижу, что BoudedBuffer s опрашивают и периодически вызывают некоторый слушатель.
  • У меня нет доступа к консоли WebSphere для компьютеров клиентов, и они не признают необходимость внесения каких-либо изменений в конфигурацию. Я могу попросить их проверить консоль для меня - что я должен просить их посмотреть?
  • У меня есть telnet-доступ к ящикам клиентов, есть ли что-то еще, что я могу исследовать здесь? Глядя на файлы профиля WebSphere и т. Д.? На какие файлы мне смотреть?
  • Поскольку стек вызовов и дамп JVM явно не ссылаются на наш код, можно ли предположить, что это проблема конфигурации?

Это был длинный вопрос, так что спасибо, что дочитали до этого.

30 апреля Обновление (1)

Этим утром я заметил, что это происходит только после того, как обработан первый запрос дня (независимо от того, какая веб-служба вызывается). Это указывает пальцем на наше приложение или Apache Axis. Может ли быть так, что это просто нормальное поведение?!

30 апреля Обновление (2)

Таким образом, похоже, что эта нагрузка на процессор является своего рода служебной деятельностью для веб-контейнера или, может быть, чем-то внутри Apache Axis. Сейчас я наблюдаю, как это происходит в нескольких разных веб-приложениях на нескольких разных серверах. Приложения без веб-компонента не подвержены таким же дополнительным нагрузкам на процессор.

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

Ответы [ 7 ]

1 голос
/ 01 февраля 2010

Я бы порекомендовал выполнить обязательную документацию , предоставленную IBM, и повысить PMR вместе с вашим собственным расследованием. Вещи, которые вы можете заподозрить:

  • Сборка мусора (маловероятно при низкой загрузке приложения)
  • Таймеры или задачи (такие как java.util.Timer или обычный рабочий менеджер)
  • Соединение предварительного тестирования со сложным запросом SQL (в свойствах источника данных DataSource WebSphere Application Server)

Я бы также рекомендовал использовать профилировщик для определения причины, YourKit profiler довольно приличный.

1 голос
/ 29 января 2010

Вы можете попробовать профилировать и создавать дампы кучи приложения, которые могут ответить на несколько вопросов, связанных с использованием памяти и процессора.

0 голосов
/ 07 апреля 2010

Я также испытываю ту же самую проблему, [Deferrable Alarm: x], использующую с BoundedBuffer. Единственная разница, которая у меня есть, заключается в том, что это на 64-битной машине с Windows 7. Абсолютно не запущен ни Tivioli, ни другой пакетный процесс, запросы не выполняются, один экземпляр просто простаивает.

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

Я проверил активность диска, сетевую активность и там ничего не происходит.

Я использую WebSphere 6.1.0.27.

0 голосов
/ 30 января 2010

Большинство серверов приложений реализованы в самой java, как и в WebSphere. Этим серверам помимо обслуживания клиентских запросов приходится выполнять другие периодические работы, например, управление пулом ресурсов. Выполнение этих заданий создаст некоторые временные объекты, которые необходимо собрать мусором.

В зависимости от того, сколько кучи выделено, использования и настроек сборщика мусора, сборщик мусора будет вызываться. Я бы сказал, попробуйте посмотреть, не занят ли ваш процессор сборщиком мусора. Для этого подключите утилиту jconsole к удаленному процессу websphere на один день и посмотрите, есть ли какая-либо взаимосвязь между использованием кучи и использованием процессора.

0 голосов
/ 14 мая 2009

Мое лучшее предположение состоит в том, что в данном случае выполняется какой-то тип мониторинга, например, Tivioli и т. Д. Вы исключили какую-либо деятельность GC?

HTH Tom

0 голосов
/ 05 мая 2009

Я знаю, что это не совсем соответствует вашей проблеме. Но, возможно, стоит взглянуть, если вы работаете до патча 17 WAS 6.1

http://www -01.ibm.com / поддержка / docview.wss? UID = swg24018437

Надеюсь, это поможет. Ура Джон

0 голосов
/ 29 апреля 2009

Очень инстинктивно (будучи незнакомым с платформами iSeries) я бы посмотрел на проблемы, связанные с дисковым вводом-выводом. Можете ли вы описать дисковую подсистему? Можете ли вы увидеть, тратит ли ваше приложение необычайно много времени в iowait?

...