3

我们在具有 1GB 保证 RAM 和 4GB 可爆 RAM 的 vServer 上运行依赖于 Java 的 Minecraft 服务器。

我们使用带有 php/mySQL 的 lighttpd 网络服务器与实际的 Minecraft 服务器一起运行 Debian 6.0 (Squeeze) Minimal (64Bit)。我们目前已将所有内容设置为保持在我们的 1GB 保证 RAM 内,但似乎我们没有以这种方式利用可爆 RAM,也不知道我们应该如何(以及是否?)这样做。

我们目前使用以下字符串加载服务器:

 /opt/java/jre/bin/java -Xmx880M -Xms880M
                        -XX:+UseConcMarkSweepGC
                        -XX:+CMSIncrementalPacing
                        -XX:ParallelGCThreads=2
                        -XX:+AggressiveOpts
                        -jar craftbukkit.jar nogui

我们为 minecraft 分配了 880M(我们认为?),其余的保留给系统、网络服务器等。我们如何优化这个设置?将这个初始启动分配到 1GB 上并很好地分配到我们的可爆 RAM 中是否有意义?Java 或系统有没有办法自己处理这个问题,比如在高峰时间需要时分配超过 880M,最大为 4GB?由于无法保证可爆破 RAM,如果它在需要时不可用,会发生什么?谢谢!

4

2 回答 2

1

我们如何优化这个设置?

这取决于。您应该首先分析此进程的内存使用情况。添加

-verbose:gc:file=gc_results.out

到你的命令行。您可以使用HPjmeter之类的工具打开生成的 gc 数据文件。您应该根据平均/峰值内存使用情况调整堆。没有一种尺寸适合所有“最佳”政策。首先,检查您平均花费在垃圾收集上的时间。一个好的经验法则是 < 7%。你多久触发一次 Full GC?你的堆里是充满了长寿的物体,还是被许多短命的物体轰炸了?这些问题应该推动你的决策。

于 2011-08-02T20:38:30.383 回答
0

服务器将花费大部分时间来占用分配的最大 RAM。我对“突发” RAM 的理解是——不要指望它,但如果你短暂需要它,它可能不会崩溃。在这种情况下,您不希望您的 JVM 挂在可爆 RAM 上。您指定的配置似乎是正确的。

于 2011-08-02T20:38:36.980 回答