赞
踩
现象: POD内存使用率超过90%
排查焦点:是否存在内存泄露?
查看pod配置可知该pod共分配5g内存,
通过 jstat -gcutil $(pid)命令可知
1.年轻代大小是1g, 老年代大小是3g
2.年轻代频繁ygc
3.老年代目前fgc总次数是13次,当前老年代占用2g
也就是说当前jvm中有1g内存是空闲的,换句话说jvm的fgc是有效的,并没有出现内存泄露。(如果出现则应该频繁的g
fgc)
pod内存使用率始终高达90%的原因是:
jvm占用内存后就不会再释放内存了。
随着服务运行,jvm的老年代空间逐步被使用,最终导致分配给jvm的4g内存都被使用,导致pod的内存使用率高达90%。
jvm内存空间不足会导致fgc,虽然jvm通过fgc能成功回收大量垃圾,但是jvm并不会释放内存给操作系统,所以在pod看来该部分内存仍然被jvm占用,所以内存使用率始终比较高。
解决方案: 增加pod内存,扩展到6g。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。