0

我们在 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 的原因。

4

2 回答 2

1

啊,这可能是可怕的客户端清除问题。如果您不使用客户端变量,请关闭它们。

从 CFAdmin > 服务器设置 > 客户端变量 > 为客户端会话选择默认存储机制设置为无。

于 2009-12-04T21:38:33.930 回答
0

没有足够的信息来真正了解导致您的问题的原因。一些有用的信息是关于冷熔线程数(和最大值)的信息。数据库负载也是有意义的,当 Web 服务器负载达到峰值时,数据库在做什么。与这个问题一起发生的变化是什么?

于 2009-12-04T03:17:14.453 回答