首页 > 其他 > 详细

生产环境CPU占用过高分析

时间:2020-03-26 23:12:14      阅读:83      评论:0      收藏:0      [点我收藏+]

1. 分析思路

结合Linux和JDK命令一块分析

1)先用top命令查找cpu占用最高的进程;

2)ps -ef 或者jps进一步定位进程详情(具体什么程序);

3)定位到具体的线程或者代码:

ps -mp 进程 -o THREAD,tid,time
 
-m:显示所有的线程
-p:pid进程使用cpu的时间
-o:该参数后是用户自定义格式

技术分享图片

 

4)将需要的线程ID转换为16进制格式(英文小写格式);

printf "%x\n" 有问题的线程ID

5)jstack 进程ID | grep tid(16进制线程ID小写英文) -A60

jstack 5101 | grep 13ee -A60 //追踪进程5101的线程13ee的详情,并打印前60行
技术分享图片

 

2. JDK自带的JVM监控和性能分析工具

1)性能监控工具

(1) jps(虚拟机进程状况工具)

(2) jinfo(Java配置信息工具)

(3) jmap(内存映像工具)

A. 作用:

生成Java应用程序的堆快照和对象的统计信息;

B. 官网
C. 相关case

映射堆快照:jmap -heap 进程ID

抓取堆内存:

  • 生成hprof文件并下载到本地
  • MAT分析插件工具

(4) jstat(统计信息监控工具)

A. 作用:

查看堆内存各部分的使用量,以及加载类的

B. 官网
C. 相关case
  • 类加载统计
  • 编译统计
  • 垃圾回收统计

 

 

生产环境CPU占用过高分析

原文:https://www.cnblogs.com/Terry-Wu/p/12577922.html

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