java -Xmx512m -version
比如說你的機器有2G內存
你用java -Xmx2048m -version
如果能正常出現JAVA VERSION版本號
OK
說明你的JVM的最大內存能上到2048
但你要留給系統一點內存
因此,對于2048MB內存的服務器我是這樣給的
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設成一樣,這樣TOMCAT上手啟動就分配了1928M內存,如果你把XMS設了較小,那系統上手會分配XMS的數額,然后上漲,漲到XMX的數額時再下落
這樣效率不高
JVM來回回收,因此效率不高
所以把XMS和XMX兩個值設平
那么JVM不就沒有垃圾回收了嗎?沒事,加上-XX : PermSize=256M -XX : MaxPermSize=512M
這兩個東西
這兩個東西就是JVM垃圾回收進程的內存,最小增長256,最大增長了512就得要JVM回收垃圾了
至于其它的參數: -Xss512k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking 這些你可以GOOGLE一下,這些參數啟用了JVM進行“并發操作”,強迫回收等機制
基本就是這些
到底能分多大內存給JVM,32位機是最大4G,你物理有32GB也只用4G,64位是可以突破這個限制
一般是把WEB或者是APP服務器的最大內存統統給了JVM,但不能全給,因為我說了,要保留點內存給操作系統本身
只知道不管理TOMCAT,WEBSPHERE還是WEBLOGIC-XX : PermSize=256M -XX : MaxPermSize=512M
還有-Xms1928M -Xmx1928M 這4個參數是肯定要用得到的
具體還可以用到哪些參數,如:廠商自帶的一些參數,這個就要查文檔了
看你當前的JVM最大可用到多少內存,用如下命令: java -Xmx多大內存m -version
一定要在多大內存后面加上m哦,要不它認為是字節KB呢,會拋錯的