谈谈jvm的参数-Xms和-Xmx?
答:
参数-Xms设置堆的初始化内存,默认是物理内存(运行内存,不是硬盘的内存)的1/64,最大堆内存(-Xmx)是物理内存的1/4。如果-Xms设置的内存剩余不到40%,JVM就会增大堆到Xmx设置的值,内存剩余超过70%,JVM就会减小堆到Xms设置的值。在实际开发中,服务器的-Xmx和-Xms设置相同以避免每次GC垃圾回收后都要调整虚拟机堆的大小,内存调整很耗时的。如果服务器物理内存无限大,那么JVM内存的最大值跟操作系统有关,一般32位机是1.5g到3g之间,而64位的就不会有限制了。
注意:如果Xms超过了Xmx值,或者堆最大值和非堆最大值的总和超过了物理内存或者操作系统的最大限制都会引起服务器启动不起来。