共计 979 个字符,预计需要花费 3 分钟才能阅读完成。
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 状况。如下图: