Java 应用程序中的高 CPU 利用率 - 为什么?
2022-08-31 17:18:15
我有一个Java应用程序(基于Web),有时在几个小时内显示出非常高的CPU利用率(近90%)。Linux 命令显示了这一点。重新启动应用程序时,问题消失。TOP
所以要调查:
我使用线程转储来查找线程正在做什么。在状态下可以找到几个线程,一些在其他几个状态中。在进行重复的线程转储时,我确实看到一些始终处于状态的线程。因此,他们似乎是罪魁祸首。'RUNNABLE'
'RUNNABLE'
但是我无法确定哪个线程正在占用CPU或进入无限循环(从而导致高CPU利用率)。
日志不一定有帮助,因为违规代码可能没有记录任何内容。
如何调查 - 应用程序的哪个部分或哪个线程导致 CPU 使用率过高?- 还有其他想法吗?