java - Websphere 内存不足异常

标签 java websphere out-of-memory ibmhttpserver

本周早些时候,我们的一台服务器上出现了 Websphere OutOfMemory 异常,现在我的问题是,如果 IHS 限制其可以维持的并发客户端数量,是否可以避免这种情况。根本问题是由数据库锁定引起的,但当这个问题得到解决时,WebSphere 内存不足。

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

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

最佳答案

限制并发 session 数并不能解决问题,但可以解决问题。

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

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

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

关于java - Websphere 内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23879696/

相关文章:

java - 动态创建新变量或使用数组

java - Websphere Spring Hibernate Oracle 使用什么缓存模型/框架?

java - 处理预期的 java.lang.OutOfMemoryError : Java heap space 的解决方法

java - 增加 Spark on Yarn 中的 Java 堆大小

java - 64 位 JVM 无法为对象堆保留足够的空间

java - 如何从同名的 Tapestry 文本字段中获取数据?

java - 使用 JNA 使用 native Fortran 库时查找 SIGSEGV 原因时出现问题

websphere - 旧版本的 WebSphere Application Server v7(免费试用)

java - 如何更改websphere监听端口

java - 到目前为止,Android 无法解析字符串