JAVA JVM调优

JAVA JVM调优

######## JVM 优化文档 #########################
一、-XX:MetaspaceSize=256m的含义到底是什么呢?其实,这个JVM参数是指Metaspace扩容时触发FullGC的初始化阈值,也是最小的阈值。这里有几个要点需要明确:
无论-XX:MetaspaceSize配置什么值,Metaspace的初始容量一定是21807104(约20.8m);
Metaspace由于使用不断扩容到-XX:MetaspaceSize参数指定的量,就会发生FGC;且之后每次Metaspace扩容都会发生FGC;
如果Old区配置CMS垃圾回收,那么第2点的FGC也会使用CMS算法进行回收;
Meta区容量范围为[20.8m, MaxMetaspaceSize);
如果MaxMetaspaceSize设置太小,可能会导致频繁FGC,甚至OOM;
建议————————————————————————————————————————————————
MetaspaceSize和MaxMetaspaceSize设置一样大;
具体设置多大,建议稳定运行一段时间后通过jstat -gc pid确认且这个值大一些,对于大部分项目256m即可

二、.参数的含义
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

nohup java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms512m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC /home/product.jar > service-product.log 2>&1 &
nohup java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms512m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC /home/order.jar > service-order.log 2>&1 &

上一篇:mysql存储过程


下一篇:SpringBoot 深度调优