Tomcat7 java.lang.OutOfMemoryError:Java堆空间

Wil*_*oat 5 java tomcat heap-memory

我正在运行tomcat7服务,这会给客户带来很大的负担.我在周末离开了应用程序,当我回来时,我注意到tomcat的CPU使用率增加到99%,在日志中我发现以下错误:

Exception in thread "http-bio-8080-exec-908" java.lang.OutOfMemoryError: Java heap space
Exception in thread "http-bio-8080-exec-948" java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)

这是否意味着当我有OutOfMemory异常时,我有908和948打开活动线程?

目前我的tomcat在默认配置下运行我还没有增加堆大小.

我们正在接受200 queries/sec.

My hardware:
CPU : Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
Memory: 2GB
Run Code Online (Sandbox Code Playgroud)

你能否指出我正确的方向,我应该看看为了解决这个问题.

谢谢你的帮助!

pro*_*mer 0

当您的 JVM 耗尽特定资源时,
java.lang.OutOfMemoryError: Java heap space就会发生错误。

解决方案 1:您应该提高该资源的可用性。当您的应用程序没有足够的 Java 堆空间内存来正常运行时。为此,您需要更改 JVM 启动配置并添加以下内容:

            -Xmx1024m

上述配置将为应用程序提供 1024MB 的 Java 堆空间。您可以使用 g 或 G 代表 GB,m 或 M 代表 MB,k 或 K 代表 KB。例如,以下所有内容都相当于说最大 Java 堆空间为 1GB:

 -Xmx1073741824 
 -Xmx1048576k 
 -Xmx1024m 
 -Xmx1g 
Run Code Online (Sandbox Code Playgroud)


解决方案 2: 如果您的应用程序存在内存泄漏,添加更多堆只会推迟 java.lang.OutOfMemoryError: Java 堆空间错误。如果您希望解决 Java 堆空间的根本问题而不是掩盖症状,可以使用多种工具。
例如:Plumbr 工具。除了其他性能问题外,它还捕获所有 java.lang.OutOfMemoryErrors 并自动告诉您导致这些问题的原因。您可以浏览其他可用的工具。选择权在你!

来源: https:
//plumbr.eu/outofmemoryerror/java-heap-space