首页 > 编程语言 > 详细

排查Java高CPU占用原因(Top+ps+printf+jstack )

时间:2019-05-16 14:44:15      阅读:266      评论:0      收藏:0      [点我收藏+]

  工作中遇到关于java高内存问题,查找到一些常用的定位命令,记录一下:

    (1) top: 查看系统基本状态和所有进程运行状态(实时,3秒刷新),可以看到是哪个进程占用cpu高

    技术分享图片

    (2) ps -mp PID -o THREAD,tid,time  查看线程占用CPU的列表

      PID是上面找到的进程号,此命令可以查看占用高CPU的进程内部具体是哪些线程(TID)在占用CPU,看哪些线程的时间很长;

    技术分享图片

    (3)printf "%x\n" TID

        找到占用CPU最高的线程,查看TID,将其转换为16进制格式  

              技术分享图片

    (4) jstack PID |grep 16进制 -A 60              查看堆栈信息

      或者去掉PID后所有参数,直接查看整个进程的堆栈信息(注意如果太多,建议输出到文件中,拿到本地使用工具阅读)  

             技术分享图片

 

排查Java高CPU占用原因(Top+ps+printf+jstack )

原文:https://www.cnblogs.com/tlxf-blog/p/10875198.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!