我使用8台Minecraft服务器运行一个arch linux服务器。 这台服务器有64GB的RAM。不幸的是,我的内存耗尽,导致linux杀死进程。
如果我调整单个JVM的-xmx设置,我可以轻松保持在64GB以下,同时保持良好的性能。但这并不理想,因为不同JVM的负载可能会有很大差异,具体取决于:
因此,例如,如果我将-xmx8G设置为所有服务器,这对于只有少数在线玩家的服务器来说太过分了,但对于来自繁忙时区并且正在创建新世界的服务器来说还不够。
理想情况下,我想为所有JVM设置一个64GB的限制。这可能吗?
(不知道这是否相关:JVM是在不同的用户下运行的。这很方便,但并不要求它保持这种状态)
任何提示都表示赞赏!
答案 0 :(得分:2)
不幸的是,Xmx的数量必须适合你的虚拟内存。
您可以添加一个巨大的交换空间,以便为您的进程获取更多虚拟内存。我观察到,一旦从那里获得内存页面,进程往往会留在交换空间中。一个小技巧是添加另一个与你的第一个相同大小的交换,并关闭第一个。页面将交换回物理RAM。将此添加为常规维护任务。