关于tomcat溢出的几个方案
1、查找系统较多的损耗资源模块进行优化,所有使用的变量不用的时候全部赋null,及时召唤jvm进行
GC。
2、加大Tomcat的内存设置,内存设置参数参考系统运行时使用的最大内存值
3、log4j不要用了,只用common-logging,减少控制台输出
4、 因为proxool内部包含了一个老版本的cglib,cglib使用最新的,因为spring在AOP时使用CBLIB会动
态产生很多类。 新版本的在这一块有所改善。
5、如果以上方法都不行,采用小孔的建议,换jdk。因为sun的jdk有些问题。
SUN 的JVM把内存分了不同的区,其中一个就是permenter区用来存放用得非常多的类和类描述。本来SUN
设计的时候认为这个区域在JVM启动的时候就固定了,但他没有想到现在动态会用得这么广泛。而且这个
区域有特殊的垃圾收回机制,现在的问题是动态加载类到这个区域后,gc根本没办法回收!