Tomcat在停止或者重新部署应用时可能存在内存泄漏。 以下面的地址中,尝试列出它们,并解释在什么情况下可以检测并修复泄漏。
http://wiki.apache.org/tomcat/MemoryLeakProtection
| Leak cause | Detected by tomcat | Fixed by tomcat | Possible enhancements |
| >=6.0.24 | >= 7.0.6 | ||
| >=6.0.24 | >= 7.0.6 | ||
| Webapp class instance indirectly held through a ThreadLocal value | no | >= 7.0.6 | |
| >=6.0.24 | >= 7.0.6 | ||
| >=6.0.24 | In 6.0.24-6.0.26 TimerThread are stopped but it may lead to problems. Optional from 6.0.27 with the clearReferencesStopTimerThreads flag. Other threads may be stopped with the clearReferencesStopThreads flag, but it's unsafe. | Fix the application to stop the thread when the application is stopped | |
| ContextClassLoader / Threads spawned by classes loaded by the common classloader | >=6.0.24 | In 6.0.24-6.0.26 TimerThread are stopped but it may lead to problems. Optional from 6.0.27 with the clearReferencesStopTimerThreads flag. Other threads may be stopped with the clearReferencesStopThreads flag, but it's unsafe. | Fix the offending code (set the correct CCL when spawning the thread) |
| no | >=6.0.24 pre-spawns some known offenders | ||
| no | > 6.0.? . Disabled by default with tomcat 7 | ||
| > 6.0.? | |||
| > 6.0.? | > 6.0.? | ||
| > 6.0.? |
本文详细列举了Tomcat中可能导致内存泄漏的各种情况,并提供了从6.0.24和7.0.6版本开始引入的检测及修复措施。包括使用自定义ThreadLocal类、Web应用程序类实例作为ThreadLocal值等问题。
5万+

被折叠的 条评论
为什么被折叠?



