EOS内存溢出可以分为两类,studio内存溢出和server内存溢出,两者在内存中以两个javaw.exe进程存在。
1)studio内存溢出,现象是弹出一个窗口要求你强制关闭,studio中打开文件过多或者执行大数据量报表的时候较容易出现;
解决方法:在启动的快捷方式的目标地址中加入D:\\primeton\\primeton53_2886\\ide\\eclipse\\studio.exe -vmargs -Xms128m -Xmx512m。
Xms128m是指给studio分配内存的最小值,Xmx512m是指最大值,根据所加载的项目大小不同studio启动后占用的内存大小在180M左右,运行期会增加,所以最小值设置不要过大,最大值的设置要根据物理内存的大小和项目执行的需要,通常在512M应该够了,如果是做报表开发还得设大一些,物理内存不够的要添置内存。
2)server内存溢出,现象是界面上报jsp无法编译的错误,eos.log中报出OutOfMemoryError的字样;
解决方法:在Primeton EOS->Servers->选择服务器,在参数列表中设置-Xms32m -Xmx512m.
通常JBOSS服务器的启动时占用内存大小在100M左右,TOMCAT服务器还要小一些,所以最小值也不要设的过大,最大值设成300M以上就可以了。
注意:我在服务过程中发现有部分开发人员喜欢这么设置-Xms512m -Xmx512m,最小值设的很大,会有什么影响吗?针对-Xms的设置我专门做了测试。
以JBOSS为例,如果server内存设置成-Xms32m -Xmx512m,JBOSS的内存占用率是104M,虚拟内存是136M;
如果server内存设置成-Xms512m -Xmx512m,JBOSS的内存占用率是132M,虚拟内存是576M;
由此可见,虚拟机内存的最小值设置得过大会给物理内存带来很大的压力,这显然是没有必要的,但最小值不做设置却没什么问题。
原文出处:http://gocom.primeton.com/blog11029_1221.htm