在服务器端,一个java应用类似resin设置-Xms和-Xmx值最好是相同的
最有效的垃圾回收-Xmn应该小于-Xmx设置的值
-Xmx是jvm在系统中获得最大内存,从而限制了java堆的大小
------------------
在jvm中有两个gc进程在运行,一个是轻量级进程生成堆;一个是全gc进程在内存不足的情况下释放堆
生成堆的数量是通过-Xmn来设置的;-Xmx减去-Xmn即为旧的堆的数量;一般来说,你不想生成堆太大或者不想保持太长时间,可以通过设置它来调整
每个线程在jvm都会获得一个堆;堆的大小限制了线程的数量,设置太大堆的大小有可能会使内存溢出
-Xss预先设定为1024k,假如堆空间太小,你会发现异常;此外最好设置ulimit -s 2048
ulimit -n 102400
第一个是系统层面对线程栈的限制
第二是对用户文件数的设置
-----------------------
所以有以下建议设置jvm运行空间
-Xms=-Xmx为系统内存(不包括swap)的四分之一
多实例情况下最大为二分之一按预期并发数做调整
-Xmn为-Xmx的四分之一
-Xss可以设置128k一般是够用的可以适当调大
------------------------
-Xms含义是初始java堆的大小
-Xmx含义是最大java堆的大小
-Xmn含义是新生成堆的大小
-Xss每个线程堆的大小