java - 线程 "http-8080-10"java.lang.OutOfMemoryError : Java 中的异常

标签 java multithreading tomcat heap-memory

我有一个 Web 应用程序在我的 64 位 Windows Server 2003、Oracle 11G 数据库和 Apache Tomcat 6.0 Web 服务器上运行。

应用程序在实时环境中运行,大约 3000 名用户使用我遇到的 Java 堆内存不足错误。增加堆空间后,它就解决了。

现在我又遇到了同样的问题,下面是错误堆栈跟踪:

Exeption in thread "http-8080-10" java.lang.OutOfMemoryError: Java heap space Aug 23, 2013 8:48:00 PM com.SessionClunter getActiveSessions Exeption in thread "http-8080-11" java.lang.OutOfMemoryError: Java heap space Exeption in thread "http-8080-4" Exeption in thread "http-8080-7" java.lang.OutOfMemoryError: Java heap space

最佳答案

您的问题可能是由几件事引起的(在概念层面上):

  • 您可能有太多并发用户或用户 session 。

  • 您可能试图同时处理过多的用户请求。

  • 您可能试图处理过大的请求(在某种意义上)。

  • 您可能有内存泄漏...这可能与上述某些问题有关,也可能无关。

没有简单的解决方案。 (您已经尝试了唯一简单的解决方案......增加堆大小......但它没有奏效。)

解决此问题的第一步是更改 JVM 选项,使其在发生 OOME 时进行堆转储。然后使用内存转储分析器检查转储,找出哪些对象使用了太多内存。这应该会给你一些证据,让你缩小可能的原因......

关于java - 线程 "http-8080-10"java.lang.OutOfMemoryError : Java 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415174/

相关文章:

c# - 无法使用线程写入文件

java - 如何在 JTable 中填充数据?

java - 谷歌任务 API : How can I find the TaskList of a Task?

c++ - 我可以在 VS2010 中获取 VS2012 标准库吗

tomcat - 在已部署的 Tomcat Web 应用程序中触发操作

java - Tomcat 上的 Web 应用程序

tomcat - 如何将 Tomcat webapp 转换为 Oracle 应用服务器 webapp?

java - 了解以下快速排序实现

java - 当间隔大于一年时,jodatime 截断剩余月份

multithreading - 等待 IO 的线程是否也会阻塞核心?