背景
为了更好地实现对项目的管理,我们将组内一个项目,迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。
JVM参数配置是
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=256M
-XX: AlwaysPreTouch
-XX:ReservedCodeCacheSize=128m
-XX:InitialCodeCacheSize=128m
-Xss512k
-Xmx4g
-Xms4g
-XX: UseG1GC
-XX:G1HeapRegionSize=4M
实际使用的物理内存如下图所示(top命令显示的内存情况):