我正在尝试在具有 384mb RAM 的 VPS 上运行一个文件,如果我在终端上使用此命令运行该文件
java -jar server.jar
它只是启动了进程,但只分配了大约 180mb,我需要分配所有可用的内存,否则服务器将崩溃。我运行命令 free -m 并得到以下输出:
total used free shared buffers cached
Mem: 384 58 325 6 0 44
-/+ buffers/cache: 14 369
Swap: 96 0 96
因此,我尝试了许多具有不同数量 RAM 的命令,但都没有起作用,java 无法创建 java 虚拟机:
java -Xms32M -Xmx256M -jar minecraft_server.jar
我尝试设置最大内存、一半内存并更改值,但出现错误。之前我在 1GB vps 上运行同一个文件,该命令运行正常:
java -Xmx1024M -Xms1024M -jar bukkit.jar
我的Java版本是:
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK Client VM (build 24.51-b03, mixed mode)
我的操作系统是 Ubuntu Server 12.04 x86 希望你能帮助我,我被同样的问题困扰了两天
编辑:不同内存容量的错误消息
root@vps-dot-me:~# java -Xms32M -Xmx384M -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root@vps-dot-me:~# java -server -Xms128M -Xmx256M -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root@vps-dot-me:~# java -XX:MaxHeapSize=256m -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
答案1
内存分配可能太小。请尝试一次增加一点。如果较小的分配失败,请尝试下一个较大的分配。
export _JAVA_OPTIONS="-Xms128m -Xmx128m
export _JAVA_OPTIONS="-Xms256m -Xmx256m
export _JAVA_OPTIONS="-Xms512m -Xmx512m
export _JAVA_OPTIONS="-Xms1024m -Xmx1024m
设置相同后运行此命令:
java -jar yourJavaApp.jar
(您需要位于您的应用程序目录中)。
请注意,您可以通过传递以下选项来“暂时”尝试:
java -Xms128m -Xmx128m -jar yourJavaApp.jar
失败是因为 JRE 分配的内存不足。可能是您运行了太多打开的应用程序,内存不足等。