Интенсивное использование процессора в Weblogic

Я использую Weblogic 10.3.4 + Oracle DB на обеих машинах Solaris (VM)

К сожалению, на прошлой неделе наше приложение, размещенное на Weblogic, стало очень медленным и не могло обслуживать новых пользователей (все длилось в течение 1 часа).

Чтобы выяснить причину, мы запрашиваем отчеты с уровня ОС, уровня БД.

Показанные отчеты:

  • очень интенсивное использование процессора в тот час. (явно был пик от числа пользователей, использующих систему)
  • Пул подключений достиг верхнего предела в Weblogic (200 подключений!)
  • Статистика AWR от Db показала ухудшение времени отклика.

СЕЙЧАС кто был первым курица или яйцо?

Очень медленная база данных может привести к замедлению работы WEBlogic и достижению максимального числа соединений из пула.

Однако, если ЦП очень загружен, возможно, потоки, удерживающие соединения БД, настолько заняты, что не возвращают соединение в пул (поскольку процессор занят)==> новый клиент приходит, новое соединение и так далее... поэтому пул соединений может быть исчерпан таким образом...?

С уважением

Cris

1 ответ

Высокая загрузка ЦП часто вызвана сборщиком мусора Java, который пытается собрать свободную память в пространстве кучи JVM, perm gen и т. Д. Если это так, вам нужно добавить больше памяти, обычно в кучу JVM. Увидеть -Xmx Вариант JVM.

Когда загрузка ЦП в JVM высока, попытайтесь выяснить, какие потоки используют ЦП. Во время проблемы создайте 2-3 дампов потока с pkill -3 java, Дампы будут расположены (для Solaris) в /proc/<JVM_PID>/path/1

Если пул потоков достигнет своего предела, вы должны увидеть ошибки в журналах. Загрузка процессора не должна увеличиваться из-за этого. Это среда, управляемая событиями, и нет необходимости создавать пулы.

Медленная БД может фактически снизить загрузку ЦП на сервере приложений. Зависит от того, как приложение запрограммировано / настроено.

Другие вопросы по тегам