虚拟机状态给出:
swap free
37489684 110178592
在尝试运行时我仍然遇到问题爪哇10g 堆的进程:
> java -Xmx10g -Xms10g -d64 HelloWorldApp
Error occurred during initialization of VM
Could not reserve enough space for object heap
为什么会发生这种情况以及如何解决该问题?
更新。输出ulimit -a:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 10
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 25525
virtual memory (kbytes, -v) unlimited
答案1
您可以有可用的 RAM,但仍然用完交换空间。我相信这可能就是你正在经历的。调查与swap -s
.
作为第二个想法,问题可能是由于没有足够的事实连续的内存可用,尽管如果操作系统无法找到 10 GB 连续的可用内存(当可用内存似乎超过 100 GB 时),这似乎相当奇怪。
答案2
您的交换区域非常小。据报告空闲的 RAM 的很大一部分实际上目前无法使用,因为它充当其他程序内存预留的后备存储。只需添加一些交换,它可以是一个简单的文件,您就可以启动您的 JVM。
答案3
尝试使用以下方法:
java -Xms512m -Xmx512m -d64 HelloWorldApp
或者
java -Xms1024m -Xmx1024m -d64 HelloWorldApp
也可能是因为太高了。