用完c3p0池连接导致高CPU?

时间:2017-02-10 21:34:51

标签: java tomcat c3p0

我很确定我会随着时间的推移泄漏连接,导致Tomcat进程(Windows)锁定。

处于锁定状态时的症状:

  • 高CPU(固定在50%以上)
  • 大量数据库TCP连接
  • 大多数/所有apr线程都停留在c3p0 ... getConnection ... awaitAvailable

如果理论是正确的并且我们正在泄漏连接,并最终耗尽它们,那么这会导致高CPU使用率吗?

我注意到忙线主要是GC。

1 个答案:

答案 0 :(得分:1)

为什么连接泄漏导致高CPU使用率并不明显,除非你有一个非常大的maxPoolSize并且未完成的连接存在一些开销。

无论如何,要做的是修复你的连接泄漏。参见例如C3P0 Spring Hibernate: Pool maxed out. How to debug?

如果在解决了连接泄漏问题后仍然存在CPU问题,那么您可以减少混乱和噪音来处理跟踪问题。但不知何故,连接泄漏可能是个问题。