Высокая загрузка ЦП в Java-приложении - почему?
У меня есть Java-приложение (веб-приложение), которое иногда показывает очень высокую загрузку процессора (почти 90%) в течение нескольких часов. LinuxTOP
Команда показывает это. При перезапуске приложения проблема исчезает.
Итак, для расследования:
Я беру поток дамп, чтобы найти, что делают потоки. Несколько тем найдены в'RUNNABLE'
состояние, некоторые в нескольких других штатах. При получении повторных дампов потоков я вижу некоторые потоки, которые всегда присутствуют в'RUNNABLE'
государство. Таким образом, они, кажется, виновник.
Но я не могу точно сказать, какой поток загружает процессор или зашел в бесконечный цикл (что приводит к высокой загрузке процессора).
Журналы неt обязательно поможет, так как нарушающий код может ничего не регистрировать.
Как мне исследовать - Какая часть приложения или какой поток вызывает высокую загрузку ЦП? - Есть еще идеи?