gpt4 book ai didi

linux - SuSE Linux 的最大 Java 堆空间是多少

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:36 25 4
gpt4 key购买 nike

这个问题与Java Refuses To Start - Could Not Resrve Enough Space for Object Heap有关并且应该很容易弄清楚。然而;我的搜索没有产生任何有用的结果。

本质上,我们在具有相同硬件的不同机器上有 2 个 32 位操作系统(RedHat 和 SuSE)。两者都使用相同的 JVM,都执行相同的命令行。 RedHat 运行良好,但 SuSE 报告内存不足。

我们只需要知道这是我们使用的 SuSE 版本的限制还是其他原因。

'cat/proc/version' 给我们:

Linux version 2.6.5-7.244-bigsmp (geeko@buildhost) (gcc version 3.3.3 (SuSE Linux)) #1 SMP Mon Dec 12 18:32:25 UTC 2005

“uname -a”在两种类型的机器上为我们提供了以下信息:

UTC 2005 i686 i686 i386 GNU/Linux

最佳答案

JVM 内存限制与可用的最大空闲连续 block 相关,而不是空闲内存量。该限制从大约 1.4 GB 到略高于 2.0 GB 不等,具体取决于您的操作系统在内存中放置各种内容的位置。我不知道 Redhat 或 Suse 将内容加载到内存中的细节,但可能是 suse 正在将某些库映射到 RAM 中间的地址,而 Redhat 可能会在最后映射它(推测)。

请记住,您在 Java 中的实际内存使用量多于您为 Xmx 指定的内存量。其他内存设置也会影响堆的大小(如 permgen)。所以也可能是 Suse 上的 perm 空间比 Redhat 上的默认值大。

此外,根据应用程序的内存分配配置文件,您可能会选择更小的堆大小和不同的垃圾收集选项。这里有一些细节 ( http://java.sun.com/performance/reference/whitepapers/tuning.html ) 和其他地方。例如,如果您分配了很多小的、临时的 block ,您将需要不同的 GC 设置,而不是如果您有很多位的、长生命周期的对象。

关于链接的问题,为什么不直接使用 Redhat?这可能是一个简单的解决方案,但我保证它会比深入研究 Java 调优和操作系统内存管理的神秘世界更快地解决你的问题:P

关于linux - SuSE Linux 的最大 Java 堆空间是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1059232/

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