`
三问飞絮
  • 浏览: 320597 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Tomcat内存泄漏一览

    博客分类:
  • Java
阅读更多

    Tomcat在停止或者重新部署应用时可能存在内存泄漏。 以下面的地址中,尝试列出它们,并解释在什么情况下可以检测并修复泄漏。

    http://wiki.apache.org/tomcat/MemoryLeakProtection

 

 

Leak cause

Detected by tomcat

Fixed by tomcat

Possible enhancements

Custom ThreadLocal class

>=6.0.24

>= 7.0.6

 

Webapp class instance as ThreadLocal value

>=6.0.24

>= 7.0.6

 

Webapp class instance indirectly held through a ThreadLocal value

no

>= 7.0.6

 

ThreadLocal pseudo-leak

>=6.0.24

>= 7.0.6

 

ContextClassLoader / Threads spawned by webapps

>=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)

ContextClassLoader / Threads spawned by JRE classes

no

>=6.0.24 pre-spawns some known offenders

 

static class variables

no

> 6.0.? . Disabled by default with tomcat 7

 

LogFactory

 

> 6.0.?

 

JDBC driver registration

> 6.0.?

> 6.0.?

 

RMI Target

 

> 6.0.?

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics