java -Xmx512m -version
比如說(shuō)你的機(jī)器有2G內(nèi)存
你用java -Xmx2048m -version
如果能正常出現(xiàn)JAVA VERSION版本號(hào)
OK
說(shuō)明你的JVM的最大內(nèi)存能上到2048
但你要留給系統(tǒng)一點(diǎn)內(nèi)存
因此,對(duì)于2048MB內(nèi)存的服務(wù)器我是這樣給的
JAVA_OPTS="-server -Xms1928M -Xmx1928M "
我的TOMCAT中的catalina.sh配置是:
JAVA_OPTS="-server -Xms1928M -Xmx1928M -Xss512k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking -XX ermSize=256M -XX:MaxPermSize=512M"
把XMX和XMS設(shè)成一樣,這樣TOMCAT上手啟動(dòng)就分配了1928M內(nèi)存,如果你把XMS設(shè)了較小,那系統(tǒng)上手會(huì)分配XMS的數(shù)額,然后上漲,漲到XMX的數(shù)額時(shí)再下落
這樣效率不高
JVM來(lái)回回收,因此效率不高
所以把XMS和XMX兩個(gè)值設(shè)平
那么JVM不就沒(méi)有垃圾回收了嗎?沒(méi)事,加上-XX : PermSize=256M -XX : MaxPermSize=512M
這兩個(gè)東西
這兩個(gè)東西就是JVM垃圾回收進(jìn)程的內(nèi)存,最小增長(zhǎng)256,最大增長(zhǎng)了512就得要JVM回收垃圾了
至于其它的參數(shù): -Xss512k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking 這些你可以GOOGLE一下,這些參數(shù)啟用了JVM進(jìn)行“并發(fā)操作”,強(qiáng)迫回收等機(jī)制
基本就是這些
到底能分多大內(nèi)存給JVM,32位機(jī)是最大4G,你物理有32GB也只用4G,64位是可以突破這個(gè)限制
一般是把WEB或者是APP服務(wù)器的最大內(nèi)存統(tǒng)統(tǒng)給了JVM,但不能全給,因?yàn)槲艺f(shuō)了,要保留點(diǎn)內(nèi)存給操作系統(tǒng)本身
只知道不管理TOMCAT,WEBSPHERE還是WEBLOGIC-XX : PermSize=256M -XX : MaxPermSize=512M
還有-Xms1928M -Xmx1928M 這4個(gè)參數(shù)是肯定要用得到的
具體還可以用到哪些參數(shù),如:廠商自帶的一些參數(shù),這個(gè)就要查文檔了
看你當(dāng)前的JVM最大可用到多少內(nèi)存,用如下命令: java -Xmx多大內(nèi)存m -version
一定要在多大內(nèi)存后面加上m哦,要不它認(rèn)為是字節(jié)KB呢,會(huì)拋錯(cuò)的