1

本周早些时候,我们的一台服务器上出现了 Websphere OutOfMemory 异常,现在我的问题是,如果 IHS 能够维持的并发客户端数量受到限制,是否可以防止这种情况发生。根本问题是由数据库锁引起的,但是当它被清除时,WebSphere 内存不足。

我只是想知道我们是否应该限制 IHS 中的并发客户端连接数以防止发生此错误?

任何帮助或建议将不胜感激。

4

1 回答 1

2

限制并发会话的数量不会解决问题,但可以解决它。

如果 WebSphere 内存不足,您应该做的第一件事是获取堆转储,分析它并找出为什么您的应用程序会消耗整个堆。我可能遗漏了一些东西,但是由于数据库锁而消耗整个堆的应用程序意味着一个错误。

在以下情况下,限制并发会话的数量只是一个有效的解决方案(而不是解决方法):

  1. 每个会话占用X的 RAM 量(即:X是会话占用的最大 RAM 量,假设应用程序按设计工作),并且您的堆大小限制为Y. 在这种情况下,将并发会话数限制为Y/X. 这是一个有效的解决方案(而不是一种变通方法),因为实际上,您的架构并非旨在承受更多会话。
  2. 在复杂的架构中,架构承受大量并发会话的能力与最薄弱环节的能力一样高。例如,即使您有足够的堆大小来支持 10,000 个并发用户,但您的数据库最多只能承受 500 个并发会话,那么您应该将并发会话数限制为 500。
于 2014-05-31T03:04:52.037 回答