我们在 Linux 环境中有一个 Web 应用程序,CPU 有时会达到 99%。
有时需要几天,有时需要几分钟。我们在 tomcat webapp 和 Oracle 数据库中使用 Hibernate 和 Spring。
检查日志显示如下:
“ConnectionManager - 事务在会话上以 on_close 连接释放模式完成;请务必关闭会话以释放 JDBC 资源!”。
然后会话数开始增长,直到 256 个会话(我们的 Apache confs 允许的最大值)。这是会话计数达到 256 时出现的行:
“ContainerBackgroundProcessor[StandardEngine[Catalina]] ManagerBase - 在 1259947978384 sessioncount 256 处启动过期会话 StandardManager”
之后 CPU 达到 99%。
有什么建议么?所有人都将受到高度赞赏。
提前致谢。
ps 前段时间我们遇到了一些类似的行锁争用问题。这就是我们采用 Spring 的原因。