zoukankan      html  css  js  c++  java
  • 如何查看CPU消耗最高的线程

    如何找出消耗CPU最多的线程?

      1.使用 top -c 找出所有当前进程的运行列表

      2. 按P对所有进程按CPU使用率进行排序,找出消耗最高的线程PID

      3.使用 top -Hp PID,查出里面消耗最高的进程,继续按P排序

      4.这个线程PID是十进制的,我们需要转换为十六进制

    此时已经找到了消耗CPU资源最多的线程,下面为排查问题过程

      5. 导出进程快照

    jstack -l PID> ./PID.stack  //PID为进程PID

       6.再用grep查看一下线程在文件里做了啥

    cat PID.stack |grep '线程PID十六进制' -C 8

    实例

    1. top -c   

    2. 按P

     

       显示Java进程 PID 为 2609 的java进程消耗最高

     3. top -Hp 2609

     4. 按P

       可以看到 2854 CPU消耗最高,转换为十六进制:b26

    5.  jstack -l 2609 > ./2609.stack

    6. cat 2609.stack |grep 'b26' -C 8

      查看问题

  • 相关阅读:
    逐步实现python版wc命令
    Linux中短横线(-)小记
    memcached启动脚本(class练习)
    nginx启动脚本(class练习)
    Python-类的方法
    re模块
    shutil模块
    时间模块(time/date)
    迭代器
    生成器
  • 原文地址:https://www.cnblogs.com/qmillet/p/13066732.html
Copyright © 2011-2022 走看看