Я использую Weblogic 10.3.4 + Oracle DB как на машинах Solaris (VM)
К сожалению, на прошлой неделе наше приложение, размещенное на Weblogic, стало очень-очень медленным, не имея возможности обслуживать приходящих новых пользователей (все длилось 1 час).
Чтобы выяснить причину, мы запросили отчеты с уровня ОС, уровня БД.
Показанные отчеты:
ТЕПЕРЬ кто был первым, курица или яйцо?
Очень медленная БД может привести к тому, что WEBlogic будет медленным и достигнет максимального числа подключений из пула.
Однако, если ЦП очень загружен, возможно, потоки, удерживающие соединения с БД, будут настолько заняты, что они не возвращают соединение с пулом (потому что процессор занят) ==> приходит новый клиент, новое соединение задано и так далее ... таким образом, пул соединений может быть исчерпан ...?
С уважением
Крис
Высокая загрузка ЦП часто вызвана сборщиком мусора java, который пытается собрать свободную память в пространстве кучи JVM, perm gen и т. Д. В этом случае вам необходимо добавить больше памяти, обычно в кучу JVM. Увидеть -Xmx
Вариант JVM.
Когда загрузка ЦП в JVM высока, попробуйте выяснить, какой поток (-ы) использует ЦП. Во время проблемы создайте 2-3 дампов потока с pkill -3 java
. Дампы потоков будут расположены (для Solaris) в /proc/<JVM_PID>/path/1
Если пул потоков достигнет своего предела, вы должны увидеть ошибки в журналах. Из-за этого загрузка ЦП не должна увеличиваться. Это среда, управляемая событиями и не требующая объединения.
Медленная БД может снизить загрузку ЦП на сервере приложений. Зависит от того, как запрограммировано / настроено приложение.