JVM配置

# 参数

JVM配置参数的第一位都是X, 表示对JVM的配置

  • -Xss: 设置线程的最大栈空间, 决定了栈的深度, 默认都是1024KB

       -Xss256k 
    
    1
  • -Xms: 设置堆空间的起始内存大小, 默认大小是物理内存/64

        -Xms10m
    
    1
  • -Xmx: 设置堆空间的最大内存大小, 默认大小是物理内存/4

        -Xmx10m
    
    1

    Tip

    -Xms与-Xmx最好设置为相同的值, 避免扩容操作

  • -XX:+PrintGCDetails: 控制台打印GC日志

        -XX:+PrintGCDetails
    
    1
  • -XX:NewRatio=2: 修改新生代与老年代在堆空间的占比, 后面的数字表示老年代是新生代的几倍

        -XX:NewRatio=2 // 新生代占1, 老年代占2, 新生代占1/3
        -XX:NewRatio=4 // 新生代占1, 老年代占5, 新生代占1/5
    
    1
    2
  • -XX:SurvivorRatio=8: 修改新生代中Eden与From和To的比例

        -XX:SurvivorRatio=8 // Eden占1, From占2, To占1/3
    
    1
  • -Xmn: 设置新生代内存大小, 当与-XX:NewRatio配置冲突时, 以-Xmn为准.

        -Xmn200m //设置新生代大小为200m
    
    1
  • -XX:- UseAdaptiveSizePolicy: 关闭自适应内存分配策略, 默认是打开的, - 号改为 + 号为开启

        -XX:-UseAdaptiveSizePolicy // 关闭自适应内存分配策略
        -XX:+UseAdaptiveSizePolicy // 开启自适应内存分配策略
    
    1
    2
  • -XX:MaxTenuringThreshold: 设置GC多少次后新生代对象晋升到老年代, 默认15次

        -XX:MaxTenuringThreshold=20  //GC20次晋升到老年代
    
    1
  • -XX:HandlePromotionFailure: 设置空间分配担保, JDK7之后不再使用

        -XX:HandlePromotionFailure=true  //空间分配担保
    
    1
  • -XX:+UseTLAB: 开启关闭TLAB, 默认是开启的

        -XX:+UseTLAB  //开启TLAB
        -XX:-UseTLAB  //关闭TLAB
    
    1
    2
  • -XX:TLABWasteTargetPercent: 修改TLAB占Eden空间的百分比, 默认1%

        -XX:TLABWasteTargetPercent=5
    
    1
  • -XX:MetaspaceSize: 修改元空间大小

        -XX:MetaspaceSize=50m
    
    1
  • -XX:MaxMetaspaceSize: 修改最大元空间大小

        -XX:MaxMetaspaceSize=200m 
    
    1
  • -XX:MaxDirectMemorySize: 修改直接内存占用上限

        -XX:MaxDirectMemorySize=20m 
    
    1
  • -XX:+PrintFlagsInitial: 查看所有JVM参数的默认初始值

        -XX:+PrintFlagsInitial
    
    1
  • -XX:+PrintFlagsFinal: 查看所有参数的最终值(可能是默认值, 也可能修改过)

        -XX:+PrintFlagsFinal
    
    1

# 命令

  • jps: 查看java进程

  • jstat:

    • -gc: 查看GC信息
          jstat -gc java进程pid 
      
      1
  • jinfo

    • -flag: 查看运行中的jvm进程的参数配置
          jinfo -flag UseTLAB java进程pid
      
      1
上次更新: 2022/3/11 15:12:48