test2新出的给FWQ
1、设置-Xms=-Xmx 这个不用说了
2、 JVM初始调配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大调配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限度;
空余堆内存大于70%时,JVM会缩小堆直到-Xms的最小限度。因而服务器个别设置-Xms、-Xmx 相等以防止在每次GC 后调整堆的大小。
阐明:如果-Xmx 不指定或者指定偏小,利用可能会导致java.lang.OutOfMemory谬误,此谬误来自JVM,不是Throwable的,无奈用try...catch捕获。
3、JVM内存限度(最大值)
首先JVM内存限度于理论的最大物理内存,假如物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简略的说就32位处理器尽管可控内存空间有4GB,然而具体的操作系统会给一个限度,这个限度个别是2GB-3GB(一般来说Windows零碎下为1.5G-2G,Linux零碎下为2G-3G),而64bit以上的处理器就不会有限度了。
验证:应用 java -Xmx512M -version 命令来进行测试,而后逐步的增大 512 的值,如果执行失常就示意指定的内存大小可用,否则会打印错误信息,
在64位的平台上用无论实在内存是2G还是32G,版本jdk1.8.0_101和jdk1.8.0_141,用以上命令测试的可用值都超过了700G。!
![计算机生成了可选文字:
[root@dididu-apilbinl#java-Xmx7ßßG-version
javaversion·1.8.6141·
Java(TM)SERuntineEnvironment(build1.8.e141一b15)
JavaHotSpot()64-BitServer(build25彐41.blmixedmode)
丫ouhavemaitin/var/spoot/mait/root
[root@dididu-apilbinl#《]
## 具体操作实例:
以我司的一个RPC服务为例。
BTW:刚上线的新服务,不晓得该设置多大的内存的时候,能够先多设置一点内存,而后依据GC之后的状况来进行剖析。
初始JVM内存参数设置为: Xmx=2G Xms=2G xmn=1G
应用jstat 查看以后的GC状况。如下图: