`

JVM 内存设置详解

阅读更多

参数

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m 

-Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m 

-XX:MaxPermSize=256m -XX:+DisableExplicitGC"

 

JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】' 

 

详解

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

 

堆里面各个代(新生代,老生代,PermGen)的大小也需要好好设置一下。

一般来说,新生代设置(-XX:NewSize=...)为堆大小的3/8,

PermGen(-XX:PermSize=512m, -XX:MaxPermSize=512m)有512m足够了。总的来说,要看应用的需求。

 

示例

-vmargs

-Dosgi.requiredJavaVersion=1.5

-Xms512m

-Xmx1024m

-XX:PermSize=256M 

-XX:MaxPermSize=512M

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics