可能重复:
VPS 上的 Linux 内存不足
在我的 Ubuntu 11.10 VPS 中,运行 jar 文件之前:
# free -m
total used free shared buffers cached
Mem: 256 5 250 0 0 0
-/+ buffers/cache: 5 250
Swap: 0 0 0
运行限制最大数量的 jar 文件3200 万记忆:
java -Xms8m -Xmx32m -jar ./my.jar
现在内存状态如下:
# free -m
total used free shared buffers cached
Mem: 256 155 100 0 0 0
-/+ buffers/cache: 155 100
Swap: 0 0 0
这个罐子占据了1.5亿记忆。
我无法运行任何其他 java 命令:
# java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
# java -Xmx8m -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
我想知道为什么-Xmx参数没有生效?
如何限制jar文件使用的内存?
答案1
该-Xmx
参数定义堆大小,也就是您可以在程序中分配的内存。java
二进制文件和加载的jar
文件自然都需要额外的空间。
答案2
并不是 Java 耗尽了所有的内存,系统也消耗了 RAM 来缓存数据(查看 和 的缓存free -m
输出top
)
你在 256MB RAM VPS 上运行 Java(臃肿的软件)无交换。 你真的真的你确定要走这条路吗?