真实案例之-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,问题解决!

上一篇下一篇

猜你喜欢

热点阅读