JVM性能调优

调优JVM参数

调优JVM参数主要关注停顿时间和吞吐量,两者不可兼得,提高吞吐量会拉长停顿时间。

JVM常用调优参数汇总
//调整内存大小
-XX:MetaspaceSize=128m(元空间默认大小)
-XX:MaxMetaspaceSize=128m(元空间最大大小)
-Xms1024m(堆最大大小)
-Xmx1024m(堆默认大小)
-Xmn256m(新生代大小)
-Xss256k(栈最大深度大小)
 
//调整内存比例
 //伊甸园:幸存区
-XX:SurvivorRatio=8(伊甸园:幸存区=8:2)
 //新生代和老年代的占比
 -XX:NewRatio=4  //表示新生代:老年代 = 1:4 即老年代占整个堆的4/5;默认值=2
 
//修改垃圾回收器
//设置Serial垃圾收集器(新生代)
//-XX:+UseSerialGC
 //设置PS+PO,新生代使用功能Parallel Scavenge 老年代将会使用Parallel Old收集器
//-XX:+UseParallelOldGC
 //CMS垃圾收集器(老年代)
//-XX:+UseConcMarkSweepGC
 //设置G1垃圾收集器
-XX:+UseG1GC
 
//GC停顿时间,垃圾收集器会尝试用各种手段达到这个时间
 -XX:MaxGCPauseMillis
 
 //进入老年代最小的GC年龄,年轻代对象转换为老年代对象最小年龄值,JDK8默认值15,JDK9默认值7
 -XX:InitialTenuringThreshold=7
 //新生代可容纳的最大对象,大于则直接会分配到老年代,0代表没有限制。
  -XX:PretenureSizeThreshold=1000000
 
 //使用多少比例的老年代后开始CMS收集,默认是68%,如果频繁发生SerialOld卡顿,应该调小
 -XX:CMSInitiatingOccupancyFraction 
 //G1混合垃圾回收周期中要包括的旧区域设置占用率阈值。默认占用率为 65%
 -XX:G1MixedGCLiveThresholdPercent=65
 
 //Heap Dump(堆转储)文件
 //当发生OutOfMemoryError错误时,自动生成堆转储文件。
-XX:+HeapDumpOnOutOfMemoryError 
 //错误输出地址
-XX:HeapDumpPath=/Users/a123/IdeaProjects/java-test/logs/dump.hprof
 
 //GC日志
-XX:+PrintGCDetails(打印详细GC日志)
-XX:+PrintGCTimeStamps:打印GC时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps:打印GC时间戳(以日期格式)
-Xlog:gc:(打印gc日志地址)

JVM生产优化通常涉及调整JVM的参数来优化性能。以下是一些常见的JVM优化参数及其用途的例子:

  1. -Xms 和 -Xmx:设置JVM的初始和最大堆内存大小。

    ava -Xms512m -Xmx1024m YourApplication
  2. -XX:NewSize 和 -XX:MaxNewSize:设置新生代的初始和最大大小。

    ava -XX:NewSize=256m -XX:MaxNewSize=512m YourApplication
  3. -XX:PermSize 和 -XX:MaxPermSize:设置永久代(PermGen)的初始和最大大小。

    ava -XX:PermSize=128m -XX:MaxPermSize=256m YourApplication
  4. -XX:+UseParallelGC 或 -XX:+UseG1GC:选择不同的垃圾收集器。

    ava -XX:+UseParallelGC YourApplication
  5. -XX:MaxGCPauseMillis:设置垃圾收集的最大暂停时间。

    ava -XX:MaxGCPauseMillis=200 YourApplication
  6. -XX:+PrintGCDetails 和 -XX:+PrintGCTimeStamps:打印GC详细信息和时间戳以便分析。

    ava -XX:+PrintGCDetails -XX:+PrintGCTimeStamps YourApplication
  7. -XX:+HeapDumpOnOutOfMemoryError:当内存溢出时生成堆转储。

    ava -XX:+HeapDumpOnOutOfMemoryError YourApplication
  8. -XX:MetaspaceSize 和 -XX:MaxMetaspaceSize:设置元空间的初始和最大大小(JDK 8及以后)。

    ava -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m YourApplication

根据应用程序的需求和运行环境,可以组合使用这些参数来优化JVM的性能。在实际操作中,可能需要结合JVM监控和分析工具(如VisualVM, JProfiler, or YourKit)进行调整。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值