真实案例之-MetaSpace分配过小导致JVM进程跑飞
2018-06-26 本文已影响0人
YDDMAX_Y
在该例中使用的是G1垃圾回收器。
现象
9点51分full gc出现,9点57分JVM进程跑飞。
各项指标如下:
9点51分,full gc出现而且很高。不知道什么原因,9点51分之后的gc监控没了,但是gc日志直到9点57一直都是有的。
image.png
GC耗时
从gc日志可以看出,可以看出是因为metaspace满了触发full gc
gc日志 image.png
9点51因为full gc频率高,流量受影响。
image.png
9点51分及之后的cpu并没有因为gc频率的升高而升高。所以:gc频率高,cpu使用率并不一定高。
image.png
9点51分到9点57分之间,load也没变化,所以:gc频率高,load不一定高。
9点57分的load之所以这么高是因为什么呢?
image.png
线程状态:
image.png
解决
metaspace的配置如下:
-XX:MaxMetaspaceSize=268435456(256K)
-XX:MetaspaceSize=268435456(256K)
通过监控发现,近几个月metaspace的空间在240-250M之间,本来metaspace就快用完了,只是今天爆发了而已。
增大metaspace到512M,问题解决!