java - WebSphere 内存不足错误

标签 java out-of-memory websphere

我们的应用程序使用 WebSphere 应用程序服务器,并且经常出现内存不足错误。为了调试这个问题,我们添加了日志来检查某些地方使用的内存,下面是观察结果。

使用的内存在达到阈值限制之前不会减少。我们使用以下内存配置:

InitialHeapSize="1024" maximumHeapSize="2048"

因此,直到超过 1024 为止,内存都不会被释放。在OOM错误的情况下,即使某些线程没有使用,内存也不会被释放。

我假设堆大小没有释放。但 java 运行时 API 显示有可用内存。 Java 操作(如方法类、字符串操作)可以正常工作,但当 JNDI 查找出现内存不足异常时,就会失败。结果,系统因连接不可用而失败。

堆栈跟踪:

com.ibm.websphere.naming.CannotInstantiateObjectException:JNDI NamingManager 处理 javax.naming.Reference 对象时发生异常。 [根异常是java.lang.OutOfMemoryError] 在 com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:1033) 在 com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:730)

最佳答案

Dynamo,您必须执行堆分析以找出导致 OOM 的原因。它是一个免费工具,可让您找出导致服务器问题的原因。可能是恶意应用程序阻塞了太多内存,或者资源泄漏了太多内存等。

您可以查看此内容以获取更多信息。您需要调整初始堆和最大堆的设置(如果您对 GC 的设置太深,则 GC 期间您的 CPU 会非常高,而如果太频繁,则会出现持续的开销使用问题)

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091

关于java - WebSphere 内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886984/

相关文章:

java - Jasper 报告中的表达式值 : "Cannot cast from String to Boolean" error

image - 图像大小调整中出现 OutOfMemoryException

java - 回收 ImageViews 以避免 OutOfMemoryError

java - 在 TAI 中以编程方式验证用户身份

java - EJB 2.1 到 EJB 3.1 迁移 - 未找到名称的 session EJB

ssl - ClassCastException 尝试在 IBM WebSphere 中导入 SSL 证书

java - 模拟静态抛出 NullPointerException

java - 使用 Protobuf 的 Java 中的 RabbitMQ。解析接收到的数据

java - Spring Security-如何在 CustomTokenAuthenticationFilter 中指定过滤器处理 url

android - 我应该如何避免内存不足错误?