JVM 之 Linux定位CPU过高问题并优化

导读:本篇文章讲解 JVM 之 Linux定位CPU过高问题并优化,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

项目部署以后出行卡顿现象,所以对问题进行了排查,记录一下排查过程

1.找进程
top
在这里插入图片描述
可以发现,是Java进程导致的CPU过高,致使系统卡顿

2.找线程
ps -mp pid -o THREAD,tid,time
在这里插入图片描述
发现占比最大的线程

3.线程id转换16进制
printf “%x\n” pid
在这里插入图片描述
得到6a33,方便下一步排查

4.查询代码位置
jstack pid|grep tid -A 30
在这里插入图片描述
发现全是GC线程

5.查看gc频率
jstat -gcutil pid 时间间隔 打印次数
在这里插入图片描述
发现Eden很满,不断增长,GC次数过多
垃圾回收统计
S0: Survivor space 0 utilization as a percentage of the space’s current capacity. 幸存者区0
S1: Survivor space 1 utilization as a percentage of the space’s current capacity. 幸存者区1
E: Eden space utilization as a percentage of the space’s current capacity. 伊甸园区
O: Old space utilization as a percentage of the space’s current capacity. 老年代
M: Metaspace utilization as a percentage of the space’s current capacity. 元空间
CCS: Compressed class space utilization as a percentage. 压缩类空间利用率为百分比。
YGC: Number of young generation GC events. 年轻一代GC事件的数量。
YGCT: Young generation garbage collection time. 年轻一代垃圾收集时间
FGC: Number of full GC events. 完整的GC事件的数量。
FGCT: Full garbage collection time. 完全垃圾收集时间。
GCT: Total garbage collection time. 垃圾回收总时间。

jstat -gccapacity pid
堆内存查看
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
EC:伊甸园区的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代gc次数
FGC:老年代GC次数

6.dump堆文件
jstack pid >>jstack.out
在这里插入图片描述
7.查找dump文件
find . -name “jstack.out”
这步可有可无,生成在当前目录
在这里插入图片描述
在这里插入图片描述
8.IBM Thread and Monitor Dump Analyzer for Java
可视化工具分析dump文件

在这里插入图片描述
查看结果还算正常

9.尝试调整JVM参数
查看JVM参数,发现默认才512m

查看系统总内存
cat /proc/meminfo查看linux系统内存大小的详细信息
在这里插入图片描述
发现总内存约64G
将-Xmx 最大堆内存设置为1024m,扩大一倍看看

重启服务发现GC频率明显下降,恢复正常,满足以下标准

如果各项参数设置合理,系统没有超时日志出现,GC频率不高,GC耗时不高,那么没有必要进行GC优化;如果GC时间超过1〜3 秒,或者频繁G C
,则必须优化。如果满足下面的指标,则一般不需要进行GC: ■ Minor GC执行时间不到50ms; ■ Minor
GC执行不频繁,约10秒一次; ■ Full GC执行时间不到1s; ■ Full GC执行频率不算频繁,不低于10分钟1次。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93765.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!