java - 用完 c3p0 池连接会导致 CPU 高吗?

标签 java tomcat c3p0

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

处于锁定状态时的症状:

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

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

我注意到繁忙的线程实际上主要是 GC。

最佳答案

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

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

如果 Connection 泄漏得到解决后仍然存在 CPU 问题,那么您在处理问题追踪时就不会感到困惑和烦恼。但不知何故,连接泄漏很可能是问题所在。

关于java - 用完 c3p0 池连接会导致 CPU 高吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42169026/

相关文章:

java - c3p0 默认连接测试器 - 如何处理错误?

java - 与 Hibernate 一对一关系,提交 JSP 表单时出现共享 key 错误

基于 Tomcat 表单的身份验证不保护 catalina.out 登录到浏览器

java - 如何向 servlet 发送 HTTP 请求

java - 在服务器上部署一段时间后无法连接数据库

MySQL语法错误异常 : Table XYZ doesn't exist

java - ExecutorService#awaitTermination 永远阻塞 - GAE 上的损坏/特殊?

java - 在 eclipse 中从 .xsd 模式生成 Java 类

java - 可点击图像的 ListView ,无法打开其他 Activity

search - Solr 不会搜索属于嵌套实体的字段