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呢,会抛错的