通常我们都知道在堆空间新生代Eden区满了,会触发minor GC,在老年代满了会触发full GC,触发Full GC会导致 Stop The World,那你们知道还有一个区域满了一定会触发Full GC么?而且这个区域满了,会直接影响我们的开发效率。
一、方法区参数调优
我们可以对运行时数据区的内存进行参数设置。这是JVM调优的重点,参数的变化将影响整体效率
核心参数设置如下:
java -Xms2048M
-Xmx1024M
-Xss512k
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=256M
-jar microservice-eureka-server.jar
这是一个通用的设置。途中具体含义如下:
- -Xms:堆空间最小值
- -Xmx:堆空间最大值
- -Xmn:新生代占堆空间的大小
- -XX:MetaspaceSize:方法区(元空间)初始值
- -XX:MaxMetaspaceSize:方法区(元空间)最大值
- -Xss:每一个线程的空间大小
下面主要研究方法区参数设置