tomcat的内存配置,关于-Xms -Xmx -XX:PermSize -XX:MaxPermSize的理解和区别

JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分:所谓堆区即为通过new的方式创建的对象(类实例)所占用的内存空间;非堆区即为代码、常量、外部访问(如文件访问流所占资源)等。然而虽然java的垃圾回收机制虽然能够很好的解决内存浪费的问题,但是这种机制也仅仅的是回收堆区的资源,而对于非堆区的资源就束手无策了,针对这样的资源回收只能凭借开发人员自身的约束来解决(堆区有java回收机制、非堆区需要开发人员能够很好的解决)。

 

  -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=64m -XX:MaxPermSize=256m

首先对着几个字段值作出解释:

1、-Xms:是初始化堆内存值;

2、-Xmx:是堆内存最大值。

这两个值是tomcat服务器内存分配是动态的最好体现,刚启动时系统给tomcat分配的内存为-Xms值,当项目占用的内存达到初始化内存的一定比例后(百度上说是80%,这点未验证)才会将给tomcat分配-Xmx大小的内存,反之亦然当项目占用的内存降至-Xmx的40%时,系统会释放部分内存,又将-Xms大小的内存划分给tomcat服务器。

 

-XX:PermSize和-XX:MaxPermSize是初始化永久保存区,原理同内存是一样的。至于-XX:MAxNewSize是什么意思,暂时还不清楚,但看到有要求这个值的大小应该设置为-Xmx的1/4。

posted on 2017-07-26 10:57  范兵  阅读(18925)  评论(0编辑  收藏  举报

导航