CPU高性能诊断方法

    技术2024-10-20  53

    今天看同事诊断一java进程CPU高的问题,特此记录下方法:

    1.通过ps命令查看具体哪个线程CPU高

    ps -mp [pid] -o THREAD,tid,time

    2.jstack -l

    通过jstack查找对应线程ID,看在执行哪块逻辑。  接着对应代码分析。。。

     

    如果是c++程序怎么定位呢?参考别人的方法

    1.使用find /proc/pid/task/ -name "sched" |  xargs grep  threads获取对应任务的tid

     

    2.使用gdb -batch -ex "bt" -p pid  获取对应线程的调用栈 

    Processed: 0.009, SQL: 9