gpt4 book ai didi

java - Tomcat 堆空间已满

转载 作者:行者123 更新时间:2023-11-28 22:47:57 24 4
gpt4 key购买 nike

在 tomcat 上运行我的 java 应用程序几天后,我在 tomcat 进程上获得 100% 的 CPU 负载。我做了 jmap 来检测完整的内存。该应用程序仍在处理所有传入的 TCP 请求,但不会启动网页(因为内存已满)

为什么 CPU 到 100%?因为运行 Java 垃圾收集器?但为什么需要几个小时?我不得不手动终止进程并再次启动 tomcat。

如何使用参数XmsXmx 更好地设置tomcat 内存?

using thread-local object allocation.
Parallel GC with 2 thread(s)

Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 1073741824 (1024.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 536870912 (512.0MB)
G1HeapRegionSize = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
capacity = 84410368 (80.5MB)
used = 84410368 (80.5MB)
free = 0 (0.0MB)
100.0% used
From Space:
capacity = 3670016 (3.5MB)
used = 0 (0.0MB)
free = 3670016 (3.5MB)
0.0% used
To Space:
capacity = 3670016 (3.5MB)
used = 0 (0.0MB)
free = 3670016 (3.5MB)
0.0% used
PS Old Generation
capacity = 715653120 (682.5MB)
used = 715497816 (682.3518905639648MB)
free = 155304 (0.14810943603515625MB)
99.97829898373111% used
PS Perm Generation
capacity = 78643200 (75.0MB)
used = 78253152 (74.62802124023438MB)
free = 390048 (0.371978759765625MB)
99.5040283203125% used

31605 interned Strings occupying 3556200 bytes.

最佳答案

正如评论中所说,当内存以这种方式爆裂时,这可能是由内存泄漏引起的。

检测此问题的唯一方法是使用专用工具。

我建议你使用JProfiler ,你可以找到一个指南here关于如何查找内存泄漏。

希望这有帮助:)

关于java - Tomcat 堆空间已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51401483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com