Linux下查看消耗CPU的线程

javaweb 项目部署后发现很耗cpu,需要查出问题所在

写个测试程序,记相关步骤:

故意写个死循环

public class TestCpu {

    public static void main(String[] args) {
        while (true){
            new Object();
        }
    }
}


终端:

top

查看消耗cpu的进程 PID=2864

Linux下查看消耗CPU的线程_第1张图片


ps -mp 2864 -o THREAD,tid,time 查看线程TID=2866

Linux下查看消耗CPU的线程_第2张图片


把线程ID转为16进制

printf "%x\n" 2866


然后查看堆栈信息

jstack 2864 |grep b32 -A 30

Linux下查看消耗CPU的线程_第3张图片



你可能感兴趣的:(java)