JVM——虚拟机参数配置学习记录

5 篇文章 1 订阅

一、虚拟机参数配置文档

官方文档一
官方文档二

二、配置分析说明

参数理解:https://www.cnblogs.com/likehua/p/3369823.html

1、初始配置

-Xms128m                           // 初始堆大小
-Xmx128m                           // 最大堆大小
-XX:NewSize=64m                    // 设置年轻代大小
-XX:PermSize=64m  
-XX:+UseConcMarkSweepGC  
-XX:CMSInitiatingOccupancyFraction=78 
-XX:ThreadStackSize=128k-Xloggc:logs/gc.log  
-Dsun.rmi.dgc.server.gcInterval=3600000 
-Dsun.rmi.dgc.client.gcInterval=3600000 
-Dsun.rmi.server.exceptionTrace=true

-XX:PermSize

JVM使用设置非堆内存初始值,默认是物理内存的1/64,
在数据量的很大的文件导出时,一定要把这两个值设置上,否则会出现内存溢出的错误。
由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
那么,如果是物理内存4GB,那么64分之一就是64MB,这就是PermSize默认值,也就是永生代内存初始大小;
四分之一是1024MB,这就是MaxPermSize默认大小。

源自:https://blog.51cto.com/sucre/558133

-XX:NewSize 和 -Xmn

<1> -XX:newSize:表示新生代初始内存的大小,应该小于-Xms的值;
<2> -XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于-Xmx的值;
<3> -Xmn:至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,
也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,
但需要注意的是这个参数是在JDK1.4版本以后才使用的。

问题:

<a> permsize 设置较小,很容易达到报警范围(0.8)
<b> 没有设置MaxPermSize,堆增长会带来额外压力。
<c> NewSize较大,old gen 剩余空间64m,
	一方面可能会带来old区容易增长到报警范围(监控数据显示oldgenused长期在50m左右,接近78%,容易出现full gc),
	另一方面也存在promontion fail风险。```

https://www.cnblogs.com/gxyandwmm/p/9456955.html

三、其它

-Xss //选置栈内存的大小
-XX:NewRatio=n:     //设置年轻代和年老代的比值。比如设置为3,表示年轻代与年老代比值为1:3
-XX:SurvivorRatio=n: //年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。比如设置为3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5。

https://www.cnblogs.com/shamo89/p/9806718.html

https://blog.csdn.net/yswKnight/article/details/79372276

https://blog.csdn.net/jackyzheng/article/details/70786746

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值