JBoss环境中频繁保存数据至文件导致内存不断增长
Struts2+Spring3+Hibernate3
Unix+JBoss+JDK5.0+MYSQL
在这个应用中,有一个定时任务会进行批量文件操作,将一批数据依次保存到本地文件中去,每个文件的大小在50KB左右,文件共约5000个,也就是共5000个左右保存数据至本地文件的操作。运行过程中发现,只要有保存文件这个动作,JBoss占用的内存就不断增长,从开始的400MB不到,一直增长到1G,导致内存溢出。试过把最大内存调到2G,结果依旧。批量动作停止后,已占用的内存也不会释放。可以肯定的是内存未释放导致的。
保存文件是使用Apache的FileUtils.writeToFile()方法,我想应该不至于没处理好关闭的问题。就算我自己小心翼翼的写一个保存文件的方法,问题也是依旧,所以基本上可以排除保存文件的代码未处理好释放的问题。
JBoss的启动参数中,也加上了并行垃圾回收的配置,也是不行,求解,急~~~~
[解决办法]
该回复于2011-03-08 09:15:01被版主删除
[解决办法]
不清楚
[解决办法]
该回复于2011-03-14 09:17:37被版主删除
[解决办法]
肯定是GC回收不了,
既然内存都溢出了,
直接看heapdump吧,
应该能找到答案。
[解决办法]