我的应用服务器进程始终处于100%CPU状态。通常我指的是几小时甚至几天。
我知道如何生成堆/线程转储,但我正在寻找更多动态信息。我想知道在那里使用了那么多CPU。有几十(或可能超过100)个线程。我知道那些线程是什么,但我需要知道他们中的哪一个正在使用我的CPU。
如何获取此信息?
答案 0 :(得分:4)
答案 1 :(得分:4)
通过创建线程转储。您可以使用jstack连接到正在运行的java进程以获取线程转储。如果您在一段时间内进行两次或多次线程转储,则可以通过分析它们找出哪些正在使用CPU。通常,处于RUNNING状态的线程是您需要关注的线程。
答案 2 :(得分:2)
答案 3 :(得分:0)