JVM系列之参数配置(五)

参数前-和+含义

#第一种-XX:-UseSerialGC就是Boolean类型的,-代表否
C:\Users\test>jinfo -flag UseSerialGC 17696
-XX:-UseSerialGC

#第二种-XX:+UseParallelGC也是Boolean类型的,+代表是
C:\Users\test>jinfo -flag UseParallelGC 17696
-XX:+UseParallelGC

#第三种-XX:MaxHeapSize=734003200是kv键值对类型的
C:\Users\test>jinfo -flag MaxHeapSize 17696
-XX:MaxHeapSize=734003200

-XX:+PrintFlagsInitial

java -XX:+PrintFlagsInitial:主要查看初始默认,jvm出场默认参数

java -XX:+PrintFlagsInitial -version

后面如果是{default}就表示是默认的,如果是{command line}就表示是被改过的

-XX:+PrintFlagsFinal

java -XX:+PrintFlagsFinal

java -XX:+PrintFlagsFinal -version

运行java命令的同时打印出参数,查看最终参数

后面如果是{default}就表示是默认的,如果是{command line}就表示是被改过的

-XX:+PrintCommandLineFlags

java -XX:+PrintCommandLineFlags -version

-Xms

初始化的堆内存,-Xms等价于-XX:InitialHeapSize(默认为物理内存的六十四分之一)例如:-Xms1024M;

-Xmx

最大堆内存,-Xmx等价于-XX:MaxHeapSize(默认为物理内存的四分之一)例如:-Xmx1024M

-Xss

设置单个线程栈的大小,等价于-XX:ThreadStackSize(默认为512k~1024k)

D:\jdk1.8.0_91>jinfo -flag ThreadStackSize 14968
-XX:ThreadStackSize=0

-Xmn

设置年轻代大小

-XX:MetaspaceSize

设置元空间大小,默认元空间的大小是21M,如果频繁的new对象的话,就会把元空间撑爆,OOM内存溢出,出现错误:OutOfMemoryError:metaspace

-XX:+PrintGCDetails

输出详细的GC收集日志信息

D:\jdk1.8.0_91>java -XX:+PrintGCDetails 14968
Heap
 PSYoungGen      total 75264K, used 3870K [0x000000076c180000, 0x0000000771580000, 0x00000007c0000000)
  eden space 64512K, 6% used [0x000000076c180000,0x000000076c547b10,0x0000000770080000)
  from space 10752K, 0% used [0x0000000770b00000,0x0000000770b00000,0x0000000771580000)
  to   space 10752K, 0% used [0x0000000770080000,0x0000000770080000,0x0000000770b00000)
 ParOldGen       total 172032K, used 0K [0x00000006c4400000, 0x00000006cec00000, 0x000000076c180000)
  object space 172032K, 0% used [0x00000006c4400000,0x00000006c4400000,0x00000006cec00000)
 Metaspace       used 2771K, capacity 4480K, committed 4480K, reserved 1056768K
  class space    used 319K, capacity 384K, committed 384K, reserved 1048576K
[GC (Allocation Failure) [PSYoungGen: 512K->488K(1024K)] 512K->496K(1536K), 0.0010906 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (Ergonomics) [PSYoungGen: 488K->463K(1024K)] [ParOldGen: 408K->358K(512K)] 896K->822K(1536K), [Metaspace: 2930K->2930K(1056768K)], 0.0062971 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]

-XX:SurvivorRatio

设置新生代中Eden和S0/S1空间的比例,默认-XX:SurvivorRatio=8,Eden:S0:S1=8:1:1

假如-XX:SurvivorRatio=4,那么Eden:S0:S1=4:1:1,SurvivorRatio值就是设置Eden区的比例占多少,S0/S1相同

#设置为:-XX:survivorRatio=8
eden space 68096K, 22% used [0x000000076dd00000,0x000000076eba5c08,0x0000000771f80000)
from space 8192K, 0% used [0x0000000772780000,0x0000000772780000,0x0000000772f80000)
to   space 8192K, 0% used [0x0000000771f80000,0x0000000771f80000,0x0000000772780000)
#设置为:-XX:survivorRatio=4
eden space 56832K, 26% used [0x000000076dd00000,0x000000076eb76bc0,0x0000000771480000)
from space 13824K, 0% used [0x0000000772200000,0x0000000772200000,0x0000000772f80000)
to   space 13824K, 0% used [0x0000000771480000,0x0000000771480000,0x0000000772200000)

-XX:NewRatio

配置年轻代和老年代在堆结构的占比,NewRatio值就是设置老年代的占比,剩下的1给新生代。

默认:-XX:NewRatio=2,表示新生代占1,老年代占2,年轻代占整个堆的1/3

假如:-XX:NewRatio=4,表示新生代占1,老年代占4,年轻代占整个堆的1/5

-XX:MaxTenuringThreshold

设置垃圾的最大年龄,如果设置为0的话,则年轻代对象不经过survivor区,直接进入年老代,对于年老代比较多的应用,可以提高效率,如果将此值设置为一个较大值,则年轻代对象会在survivor区进行多次复制,这样可以增加对象在年轻代的存活时间,增加在年轻代即被回收的概论。

这个值只能设置为0到15之间

D:\jdk1.8.0_91>jinfo -flag MaxTenuringThreshold 14968
-XX:MaxTenuringThreshold=15

-XX:+UseSerialGC

使用串行垃圾回收器

-XX:+UseParallelGC

使用parallels cavenge回收器

-XX:+UseParNewGC

使用ParNew垃圾回收器

-XX:+UseConcMarkSweepGC

使用CMS垃圾回收器

-XX:+UseG1GC

使用G1回收器

项目启动配置参数

启动微服务服务时,配置修改jvm调优参数

java -server -XX:PrintFlagsFinal --XX:MetaspaceSize=512M -Xms1024m -Xmx1024m -XX:+UseG1GC -jar xxx.jar

idea配置参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值