gpt4 book ai didi

java - Linux 上如何处理 JVM OutOfMemoryError?

转载 作者:行者123 更新时间:2023-12-02 00:13:08 25 4
gpt4 key购买 nike

Redhat Enterprise Linux 5.4 32 位 + Sun HotSpot JVM 6u5 32 位 + JVM 设置-Xms1536m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m

JVM 因以下错误而崩溃:

java.lang.OutOfMemoryError: requested 828752 bytes for Chunk::new. Out of swap space? Internal Error (allocation.cpp:218), pid=21557, tid=329534352 Error: Chunk::new

java.lang.OutOfMemoryError: requested 383504 bytes for GrET in /BUILD_AREA/jdk6_05/hotspot/src/share/vm/utilities/growableArray.cpp. Out of swap space? Internal Error (allocation.inline.hpp:42), pid=16927, tid=334281616 Error: GrET in /BUILD_AREA/jdk6_05/hotspot/src/share/vm/utilities/growableArray.cpp

java.lang.OutOfMemoryError: requested 256000 bytes for GrET in /BUILD_AREA/jdk6_05/hotspot/src/share/vm/utilities/growableArray.cpp. Out of swap space? Internal Error (allocation.inline.hpp:42), pid=16863, tid=334216080 Error: GrET in /BUILD_AREA/jdk6_05/hotspot/src/share/vm/utilities/growableArray.cpp ..........

可能是JVM本身C/C++核心内存泄漏,C/C++内存使用达到JVM临界值,或者平台交换空间不足。

如何处理JVM本身C/C++核心内存泄漏?
Valgrind v3.7 无法与热点 JVM 6u5 配合使用。

最佳答案

这里的 JVM 崩溃只是误导。问题是进程耗尽了地址空间。一般来说,您的“-Xmx2048m”对于当前可用的虚拟内存和/或特定的 32 位操作系统来说太大了。

在 32 位 Windows 下,任何进程最多只能寻址 ~1.6GB RAM。其他操作系统取决于。 Linux 应该能够使用最大~3GB。

除了对象堆大小 (-Xmx) 之外,JVM 还需要一些 RAM 用于堆栈、对象管理、GC 结构等。实际上,这会导致 32 位 Windows 系统的最大堆大小约为 1100MB。

有关进程内存大小限制的更多详细信息,请参阅博客文章:https://sinewalker.wordpress.com/2007/03/04/32-bit-windows-and-jvm-virtual-memory-limit

关于java - Linux 上如何处理 JVM OutOfMemoryError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705486/

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