linux上jvm的xms参数最大到底能设多大??

今天做了个实验,在linux上启动jvm,这个xms和xmx到底最大能设多大??
不啰嗦了,直接上图片结果!
系统:centos 6,内存4g
jdk :hotspot1.8(这里试了openjdk结果跟这个基本一样)
为了不干扰结论,这里我关闭了swap
linux上jvm的xms参数最大到底能设多大??
贴一下报错结果:
[localhost bin]$ ./java -Xmx5500m -Xms5500m Main
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006dad50000, 3844800512, 0) failed; error='Cannot allocate memory' (errno=12)

There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 3844800512 bytes for committing reserved memory.
An error report file with more information is saved as:


/jdk1.8.0_241/bin/hs_err_pid104015.log

这里设置的这个无法启动的最小的xms是5500m,看了一下报错,这里的启动报错是启动申请的内存是 3844800512=3666m=5500m的三分之二。
但是比较奇怪的就是初次 申请的3666m跟available的3.5g,还是有一定的差距
,另外jvm启动的时候并不是完全按照你设置的xms来直接申请内存的。
结论:
目前来看centos 6 ,内存4g,available=3.5g,jvm能设置的最大的xms是5499m,大约等于系统available的1.5倍

上一篇:java Runtime中maxMemory,totalMemory, freeMemory的含义


下一篇:linux 基础知识及命令总结