Провідник процесів
- Запустіть Process Explorer від імені адміністратора.
- Клацніть процес правою кнопкою миші, виберіть «Властивості», а потім виберіть вкладку «Потоки».
- Виберіть потік, який споживає велику кількість ЦП, а потім виберіть Стек, щоб переглянути функції, які виконуються.
Ви можете визначити, який потік споживає ЦП у процесі Java таким чином:
- Визначте ідентифікатор процесу (PID) ураженого процесу сервера за допомогою такої команди: $ jps -v.
- Визначте, який потік у PID, визначеному на кроці 1, споживає ЦП:
Перевірте ідентифікатор процесу, який споживає надмірні ресурси Операційна система запускає кожен екземпляр JVM в окремому процесі. Використовуючи профайлер системного рівня, ви можете швидко визначити процес, який забирає найбільше ресурсів, що спрямує вас на JVM, відповідальну за проблему.
Ви можете визначити найбільшого споживача потоку за допомогою використовуючи команду top -H -p разом із дампом потоку. Незважаючи на те, що цей метод дійсний для визначення більшості потоків, які споживають ЦП, вам потрібно принаймні мати доступ до командного рядка для виконання команд, що не завжди доступно.
Найпростіший спосіб побачити кількість потоків у Java – це використовуйте графічний інструмент, наприклад Java VisualVM. Крім потоків програми, Java VisualVM також перераховує GC або будь-які інші потоки, які використовуються програмою, наприклад потоки JMX. Відстеження кількості потоків є основною функцією Java VisualVM.