JVM之常用基础参数详解
目录
- 常用基础参数内存Xms,Xmx讲解
- 常用基础参数栈内存Xss讲解
- 常用基础参数元空间MetaspaceSize讲解
- 常用基础参数PrintGCDetails回收前后对比讲解
- 常用基础参数SurvivorRatio讲解
- 常用基础参数NewRatio讲解
- 常用基础参数MaxTenuringThreshold讲解
1. 常用基础参数内存Xms,Xmx讲解
- 概述
- 代码查看
public class HelloGC {
public static void main(String[] args) throws InterruptedException {
long totalMemory = Runtime.getRuntime().totalMemory();
long maxMemory = Runtime.getRuntime().maxMemory();
System.out.println("TOTAL_MEMORY(-Xms)="+totalMemory+"(字节)"+(totalMemory/(double)1024/1024)+"(MB)");
System.out.println("MAX_MEMORY(-Xms)="+maxMemory+"(字节)"+(maxMemory/(double)1024/1024)+"(MB)");
}
}
- 执行结果
2. 常用基础参数栈内存Xss讲解
- 概述
- 默认为512k~1024k,但使用jinfo查询ThreadStackSize大小为什么为0?
根据官方文档所说:跟平台有关系,如下
3. 常用基础参数元空间MetaspaceSize讲解
-
概述
-
可以看到,虽然机器16G,但元空间只有21M,所以需要进行调参
-
典型设置案例
4. 常用基础参数PrintGCDetails回收前后对比讲解
-
概述
-
设置输出详细GC收集日志信息
-
正常输出结果
解析:
- 报OOM时的输出结果
解析:
5. 常用基础参数SurvivorRatio讲解
- 概述
- 默认8:1:1,可以设置,比如设置为4,就是4:1:1
6. 常用基础参数NewRatio讲解
- 概述
7. 常用基础参数MaxTenuringThreshold讲解
- 概述
- 垃圾最大年龄默认为15,可通过
jinfo -flag MaxTenuringThreshold 端口号查询
- 垃圾最大年龄也是15,设置超过15会报错