2021-01-28

排查生产服务器CPU飙高问题

1、通过ps ux 排查哪些进程cpu占用率高

  top

2、查出最耗CPU线程 top -Hp pid

  top -Hp 29698

3、通过线程ID转换16进制,printf "%x\n" 29698

  29698里最高的线程为1213: printf "%x\n" 1213

  (保存为54ee)

4、追踪线程内部,查看load过高原因。通过命令:jstack 29698 >>/usr/2文件,将线程堆里面的信息全部保存下来

    ./jdk1.8.0_192/bin/jstack 29698  >> /tmp/29698.txt

5、通过转换的16进制就可以去“29698.txt”里面查找对应的线程

    ./jdk1.8.0_192/bin/jstack 29698 | grep 54ee

"ConsumerFetcherThread-marketing.push_c_cnsz141742-1609313734042-cdaaf141-0-48" #116 prio=5 os_prio=0 tid=0x00007f7eac02a000 nid=0x7ab8 runnable [0x00007f7e85db3000]

less 29698.txt

根据nid查询对应的线程

6、通过线程ID找出日志

"pool-4-thread-1" #226 prio=5 os_prio=0 tid=0x00007f22dc0ac800 nid=0x175e runnable [0x00007f22e5376000]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容