3

我运行一个带有 8 个 Minecraft 服务器的 arch linux 服务器。此服务器有 64GB 的 RAM。不幸的是,我的内存不足,导致 linux 杀死进程。

如果我调整单个 JVM 的 -xmx 设置,我可以轻松保持在 64GB 以下,同时保持良好的性能。但这并不理想,因为不同 JVM 的负载可能会因以下因素而大不相同:

  • 一天中的时间(玩家的时区)
  • 玩家人数
  • 设置
  • 情况

因此,例如,如果我将 -xmx8G 设置为所有服务器,这对于只有几个在线玩家的服务器来说太过分了,但对于来自繁忙时区且当前正在生成新世界的服务器来说就不够了。

理想情况下,我想为所有 JVM 一起设置一个 64GB 的限制。这可能吗?

(不知道这是否相关:JVM 在不同的用户下运行。这很方便,但不要求它保持这种状态)

任何提示表示赞赏!

4

1 回答 1

2

不幸的是,Xmx 的数量必须适合您的虚拟内存。

你可以添加一个巨大的交换空间来为你的进程获取更多的虚拟内存。我观察到,一旦进程从那里获得内存页面,它们往往会停留在交换空间中。一个小技巧是添加另一个与第一个相同大小的交换,然后关闭第一个。页面将交换回物理 RAM。将此添加为常规维护任务。

于 2013-05-23T22:36:20.527 回答