JVM原理之调优参数

9 JVM调优参数

9.1 参数类型

  • 标准参数

    • java -version
    • java -help
    • java -server
      JVM原理之调优参数_第1张图片
  • -X参数

    非标准参数,也就是在JDK各个版本中可能会有变动;

    • -Xint 解释执行
    • -Xcomp 第一次使用就编译成本地代码
    • -Xmixed 混合模式,JVM自己来决定
      在这里插入图片描述
  • -XX参数

    • Boolean类型

      格式:-XX:[+-] + 或 - 表示启用或者禁用name属性

      比如:-XX:+UseConcMarkSweepGC 表示启用CMS类型的垃圾回收器

    • 非Boolean类型

      格式:-XX=表示name属性的值是value

      比如:-XX:MaxGCPauseMillis=500 设置GC最大停顿时间

9.2 其他参数

  • -Xms1000m 等价于 -XX:InitialHeapSize=1000m ,设置初始堆内存大小
  • -Xmx1000m 等价于 -XX:MaxHeapSize=1000m ,设置 最大堆内存大小
  • -Xss128k 等价于-XX:ThreadStackSize=128k

9.3 常见命令及参数

关于JVM命令以及调优工具官方说明地址:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/

9.3.1 jps

查看java 进程
JVM原理之调优参数_第2张图片

9.3.2 jinfo

实时查看和调整JVM配置参数

jinfo -flag name pid 查看某个java进程的name属性的值

如:查看最大堆内存的值 jinfo -flag MaxHeapSize pid

​ 查看G1 GC的配置 jinfo -flag UseG1GC pid
在这里插入图片描述

9.3.4 常用参数

查看默认参数有哪些?

  • -XX:+PrintFlagsInitial 查看java 环境初始默认值; JVM原理之调优参数_第3张图片
  • java -XX:+PrintCommandLineFlags -version 打印出用户手动选项的 XX 选项
    在这里插入图片描述
参数 说明 含义
-XX:ClCompilerCount 大于1,会影响系统稳定性 最大并行编译数
-XX:InitialHeapSize 简写-Xms100M 初始化堆大小
-XX:MaxHeapSize=1 简写-Xmx100M 最大堆大小
-XX:NewSize=20M 设置年轻代的大小
-XX:MaxNewSize=50M 年轻代最大大小
-XX:OldSize=50M 设置老年代大小
-XX:MetaspaceSize=50M 设置方法区大小
-XX:MaxMetaspaceSize=50M 方法区最大大小
-XX:+UseParallelGC 新生代,吞吐量优先 使用UseParallelGC
-XX:+UseParallelOldGC 老年代,吞吐量优先 使用UseParallelOldGC
-XX:+UseConcMarkSweepGC 老年代,停顿时间优先 使用CMS
-XX:+UseG1GC 新生代,老年代,停顿时间优先 使用G1GC
-XX:NewRatio -XX:Ratio=4,新生代:老年代=1:4 新老生代的比值
-XX:SurvivorRatio 值为8,(s0+s1):Eden=1:8 两个S区和Eden区的比值
-XX:+HeapDumpOnOutOfMemoryError 堆发生溢出,自动生成dump文件 启动堆内存溢出打印
-XX:HeapDumpPath=heap.hprof 当前目录生成一个heap.hprof文件 指定堆内存溢出打印目录
XX:+PrintGCDetails -XX:+PrintGCTimeStamps 打印出GC日志
-Xss128k 3000-5000最佳 设置每个线程的堆栈大小
-XX:MaxTenuringThreshold=6 默认值为 15 新生代到老年代的临界值
-XX:InitiatingHeapOccupancyPercent 启动并发GC周期时堆内存使用占比
-XX:G1HeapWastePercent 默认是10%,如果并发标记可回收的空间小于10%,则不会触发MixedGC 允许的浪费堆空间的占比
-XX:MaxGCPauseMillis=200ms 暂停时间不能太小,太小的话就会导致出现G1跟不上垃圾产生的速度。最终退化成Full GC G1最大停顿时间
-XX:ConcGCThreads=n 并发垃圾收集器使用的线程数量
-XX:G1MixedGCLiveThresholdPercent=65 默认占用率为 65% 混合垃圾回收周期中要包括的旧区域设置

你可能感兴趣的:(JVM专题)