我正在尝试在我的 ubuntu vps (openVZ) 上运行 spigot 服务器。问题是我收到了关闭服务器的“已终止”消息。经过一番研究,我发现内存不足,但我将最小和最大内存 (java) 设置为 512M(之前我有 1G,但崩溃次数更多)。我理解为什么进程会因为内存使用过多而被终止,但我不明白为什么这些进程不使用交换空间 (2gb)。
感谢您一贯快速的答复。
附言:回到 dasy,我运行同一个服务器,没有任何问题。我不知道现在我做错了什么
答案1
您可以手动分配 Java 可用于 minecraft 的 RAM 数量。来自我的世界维基
使用 Xms 和 Xmx 参数可以指定 Java 的初始和最大内存大小。默认情况下,您的服务器运行内存约为 100 MB,这非常少。大多数人会将服务器更改为运行内存更多,例如:
java -Xms512M -Xmx1G ... java -Xms1024M -Xmx1024M ... java -Xms1G -Xmx2G ...
答案2
Java 的内存处理有点特殊。
我对此不太了解,但你也许应该提高 XMX 和 XMS 设置。
Minecraft 不会使用您的交换:它是由 Linux 内核管理的专用空间:如果您的系统内存不足,内核将决定交换信息,但 JAVA 将首先将 Minecraft 服务器限制为您通过命令行允许的内存大小。
您的服务器最近几天确实运行良好,因为 MineCraft 在访问/制作地图时会扩展其“地图存储文件”。
因此,最初几天,你的地图足够小,可以容纳分配的内存,然后我想随着玩家爬行它确实会变大……
答案3
您可以前往软件中心并搜索 mc-server,此应用程序将弹出 mc 服务器安装程序,安装应用程序并同意 eula,然后如果您想要更改 server.properties。在 mc 服务器安装程序的 snap 菜单中,您可以选择所需的 RAM 大小,例如 4G、2G 和最高 12G