Tomcat内存泄漏一览

    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

扫描二维码关注公众号,回复: 713327 查看本文章
 

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.?

 

猜你喜欢

转载自simon-fish.iteye.com/blog/1911284