5

我知道这是一个常见的问题/问题。我想知道从哪里开始。

在 windows server 2008 上运行 java,我们有 65GB 内存,它显示 25GB 可用。(目前有几个人正在运行进程)。

systeminfo | grep -i memory

显示:

总物理内存:65、536 MB
可用物理内存:26,512MB
虚拟内存:最大大小 69,630 MB
虚拟内存:可用 299 MB
虚拟内存:使用中:69、331 MB。

真的只是想知道我如何解决这个问题。

  • 我从哪里开始?
  • 使用的虚拟内存多于物理内存是什么意思,这就是java无法启动的原因吗?
  • java是否想使用虚拟内存而不是物理内存?

java -version

给我:

Error occured during initialization of VM could not reserve enough space for object heap

更具体的问题:

  • 为什么JVM不想使用空闲的物理内存?
  • java -version如果不指定 Xms 参数,java 命令(如 )想要使用多少内存?
  • 简单地分配更多的虚拟内存是解决问题的好方法吗?
4

3 回答 3

2

我遇到了同样的问题。通过分析,我们发现机器的交换空间较低。请增加交换空间并验证。

于 2014-03-28T14:24:29.880 回答
0

正如我在遇到类似问题时发现的那样(尽管系统上的内存要少得多——请参阅Cannot run a 64-bit JVM in 64-bit Windows 7 with a large heap size),在 Windows 上,JVM 将尝试分配一块连续的内存。

所以我敢打赌,虽然你有足够的内存,但你没有足够的连续内存。

于 2013-02-17T23:46:32.153 回答
0

至少要查看 java 版本运行 java -Xmx64m -version 如果需要,这应该向您显示版本。然后您可以尝试增加 Xmx 并查看它失败的值

于 2014-02-19T09:09:05.340 回答