【问题标题】:Setting Java Heap Size does not work with 256GB RAM 64-bit machine设置 Java 堆大小不适用于 256GB RAM 64 位机器
【发布时间】:2015-02-03 07:39:20
【问题描述】:

我一直在努力寻找这个问题的答案,但还是找不到。

我有一台具有 256 GB RAM 的 64 位机器。

我正在尝试执行一个链接到 MySQL 的 Java 程序。它需要一个安静的大堆大小,因为当我在几分钟后使用 VM 参数 -Xmx1024m 时,会弹出:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

但是,当我尝试将程序VM参数设置为-Xmx2048m或更大时,它不起作用并说:

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

我读到设置 -Xmx2048 对于 64 位机器来说不是问题,但我真的不知道为什么它在我的机器上不起作用。

java -version 输出:

wmic OS 获取 FreePhysicalMemory /Value 输出:

FreePhysicalMemory=251663664

wmic computersystem 获取 TotalPhysicalMemory 输出:

TotalPhysicalMemory
274811621376

wmic os 获取 osarchitecture 输出

OSArchitecture
64-bit

我无法执行systeminfo|find "Memory",因为它说语法错误。我也不知道为什么。

【问题讨论】:

  • 你的命令行中java -version的输出是什么?
  • 如果你尝试-Xmx64g会发生什么?
  • 嗯,我们在韩语窗口上的事实并没有让事情变得更容易:) 无论如何,总结一下:确保你的操作系统是 64 位,它“看到”RAM(检查任务管理器)并且您的 JVM 是 64 位的,那么您应该一切顺利。否则我没有想法。对不起。
  • 你从C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe启动powershell有什么不同吗?
  • 这增加了可能存在问题的另一层。 Elicpse 不需要使用 JAVA_HOME 中的 java(这是我上次遇到此类问题时造成问题的原因),请检查项目特定设置。此外,虽然我不确定,但使用 32 位 Eclipse 可能会导致此类问题。如果没有任何效果,最好尝试使用 java -jar 从控制台运行程序,看看问题是否仍然存在。

标签: java memory heap-memory


【解决方案1】:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

此消息表明 java 堆没有足够的空间来进行进一步的分配。 您似乎已设置为 1G 的 Xmx,这对于您的应用程序来说是不够的 否则应用程序可能会泄漏占用java堆空间的内存。

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

在虚拟机初始化期间。 JVM 执行从堆到 JIT 模块的各种初始化。 如果 JVM 找不到 请求的 Xmx 的连续内存空间然后将抛出上述错误消息。

这些是虚拟内存分配,所以请不要与物理内存值混淆

请运行命令 java -verbose:init -Xmx2048 -version

此命令将告诉 JVM 在初始化时经历的步骤以及失败的步骤。

【讨论】:

  • 不要对未引用的文本使用引用格式。如果被引用,请注明出处。
【解决方案2】:

考虑以管理员身份运行您的应用 - 只需通过右键单击启动 PowerShell 控制台 -> 以管理员身份运行。

Windows 可能会拒绝向运行非提升的单个进程授予大量内存。

另外 - 您使用的是 Windows Server 还是工作站版本的 Windows?对于此类“大”服务,一般建议使用 Windows Server。

【讨论】:

    猜你喜欢
    • 2014-03-13
    • 1970-01-01
    • 2012-07-22
    • 2014-03-14
    • 2011-02-05
    • 2023-03-14
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多