Jvm常用参数

Java获取堆内存使用情况

public static void main(String[] args) {
    //已经分配的内存大小 默认单位byte,转为mb 1 * 1024 * 1024 b = 1 m
    long totalMemory = Runtime.getRuntime().totalMemory() / (1024 * 1024);
    //最大内存
    long maxMemory = Runtime.getRuntime().maxMemory() / (1024 * 1024);
    //所分配内存的剩余大小
    long freeMemory = Runtime.getRuntime().freeMemory() / (1024 * 1024);
}

堆栈内存大小

参数解释举例
-Xmx堆最大值,默认物理内存的1/4-Xmx2048M :堆最大值设为2g
-Xms堆最小值,默认物理内存的1/16-Xms2048M:堆最小者设为2g
-Xmn设置堆新生代大小-Xmn500M:新生代设为500M
-Xss栈容量-Xss1024K:栈内存设为1M

堆内存新生代Eden和Survivor比例

  • -XX:SurvivorRatio=8

    如果虚拟机堆内存新生代是按照Eden和双Survivor布局,这个参数设置Eden和一个Survivor的比例。等于8代表一个Eden和Survivor区域比例为8:1

内存溢出打印

  • -XX:+HeapDumpOnOutOfMemoryError

    让虚拟机在出现内存溢出异常的时候Dump出当前的内存堆转储快照,以便进行事后分析

  • -XX:HeapDumpPath=${目录}

    堆转储快照存储位置

元空间

  • -XX:MaxMetaspaceSize

    设置元空间最大值,默认-1,即不受限制,只受限于本地内存大小。

  • -XX:MetaspaceSize

    指定元空间的初始空间大小,以字节为单位,达到该值就会触发垃圾收集进行类型卸载,同时收集器会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过-XX:MaxMetaspaceSize(设置了的话)的情况下,适当提高该值

  • -XX:MinMetaspaceFreeRatio

    在垃圾收集之后控制最小的元空间剩余容量的百分比,可减少因为元空间不足导出的垃圾收集的频率。-XX:MinMetaspaceFreeRatio=40 。设置为百分之四十

  • -XX:MaxMetaspaceFreeRatio

    控制最大的元空间剩余容量的百分比

本地直接内存

  • -XX:MaxDirectMemorySize

    指定直接内存的大小,如果不指定,默认与Java堆的最大值一致(-Xmx)。-XX:MaxDirectMemorySize=1024m,直接内存设为1g

GC日志

查看GC基本信息

  • -XX:+PrintGC:JDK9之前版本使用。
  • -Xlog:gc:JDK9以上版本使用。

查看GC详细信息

  • -XX:+PrintGCDetails:JDK9之前版本使用。
  • -Xlog:gc*:JDK9以上版本。

查看GC前后堆、方法区可用容量变化

  • -XX:+PrintHeapAtGC:JDK9之前版本使用。
  • -Xlog:gc+heap=debug:JDK9以上版本。

查看GC过程用户线程并发时间及停顿时间

  • -XX:+PrintGCApplicationConcurrentTime和-XX:+PrintGCApplicationStoppedTime:JDK9之前版本使用。
  • -Xlog:safepoint:JDK9以上版本。

查看熬过收集后剩余对象的年龄分布信息

  • -XX:+PrintTenuringDistribution:JDK9之前版本使用。
  • -Xlog:gc+age=trace:JDK9以上版本。

其他配置

  • -XX:+PrintCommandLineFlags:查看程序使用的JVM参数。
  • -XX:MaxTenuringThreshold:对象进入老年代的年龄阈值。-XX:MaxTenuringThreshold=15
  • -XX:+PrintTenuringDistribution:JVM在每次新生代GC时,打印出幸存区中对象的年龄分布
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值