终于找到了这个问题的答案
当系统类引用一个库类,并且存在的时间超过其寿命时,就会存在一种已知的PermGen内存泄漏。一个示例是Java发现JDBC驱动程序或其他服务并“自动注册”它时。它一直在系统中对其进行引用,但是该类本身属于Web应用程序,必须在应用程序停止时将其卸载-
但由于该引用而不能卸载。并非所有此类参考都易于清除。
这种情况下的一个典型症状是,依赖于该系统功能的第一个Web应用程序将成功,但是依赖于该系统功能的第一个Web应用程序将失败(因为系统中注册的服务属于第一个Web应用程序,并且无法从第二个应用程序的类加载器,反之亦然)。
Tomcat 7和最新版本的Tomcat 6在其默认配置中可以更好地防止某些已知的PermGen内存泄漏。
Tomcat 5.5根本没有这种保护。
编辑 一些参考
http://people.apache.org/~markt/presentations/2010-08-05-Memory-Leaks-
JavaOne-60mins.pdf
http://people.apache.org/~markt/presentations/2010-11-04
-Memory-
Leaks-60mins.pdf
http://eclipse.org/mat/
http://wiki.apache.org/tomcat/FAQ/
疑难解答和诊断http://wiki.apache.org/tomcat/MemoryLeakProtection



