如何编写一个能够快速运行Minecraft服务器的.bat文件
服务器运行缓慢的原因有很多,但有一种技巧是通过在.bat文件中写入各种参数来解决这个问题并启动服务器。如果你搜索一下,会发现有很多网站介绍了各种设置,但实际上什么操作可以让服务器变得更快,我进行了各种参数的验证。
※如果只想知道结论而不关心细节,请向下滚动到最底部。
测试过的服务器规格
Minecraft Forge服务器版本1.12.2-2855,有大约70个不同种类的MOD,包括工业类和魔法类等。
配置要求单人游戏需要稳定的8GB内存。
サーバーに必要なのはメモリ?CPU?グラボ?
結論から言うと、CPU>メモリ>>>>>グラボではないかなと。
中央处理器
在服务器中,特别是时钟频率非常重要,而实际上核心数并不太相关。
时钟频率大致指的是每秒钟可以进行多少次运算处理的数值,如果大约稳定在3GHz,那么作为服务器就没有问题。
核心数并不相关的原因是,实际上在运行Minecraft服务器时,单核心是最优的选择。如果尝试进行并行化加速,往往会导致反而变慢。也就是说,加速会使得性能变差。
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing
-XX:ParallelGCThreads=12 -XX:+AggressiveOpts
なんかよく紹介されているコレは不要だった。
ただし、サーバーとクライアントを同じPCで動かす場合、-serverを指定しておかないと、両方を同じコアで動かそうとして重くなってしまう(らしい)ので、どんなにひどくても2コアはあった方がいいと思われる。もっとも今の時代なら大抵のCPUはその点問題ないとは思うが。
メモリ
シングルプレイが満足にできるスペックであれば、メモリの要件は満たしていると言える。サーバーがカクつかないように、シングルプレイで割り当てていたのと同程度の割り当てをしておきたい。MOD山盛りのサーバーだとかなり割り当てを増やさないといけなくなるが、逆にバニラサーバーで遊ぶ分には2GBもあれば足りる。
サーバーとクライアントを同じPCで動かす場合、例えば16GB積みのPCでサーバー8GB、クライアント8GBのような割り当てをしてしまうとOutOfMemoryError待ったなしなので、少しでいいから余裕を持たせよう。メモリの割り当ては2の累乗数であるべきとよく言われるが、実際例えばクライアントのメモリ割り当てを6GBとかにしても普通に動く。
GPU (Graphics Processing Unit)
画面描画のお話なので、サーバーには関係がない。
Java (Java)
Java运行环境(JRE)还是Java开发工具包(JDK)?
为了运行它,需要JRE,但是由于JDK包含JRE,所以无论哪个都可以运行。
是选择64位版本还是32位版本?
推荐使用64位版本。如果使用32位版本可能会在内存分配上出现问题。如果两者都已安装,请卸载32位版本。
关于其他经常被介绍的参数的必要性或可选性
请关闭
不需要。换句话说,无所谓。
只是关于是否在命令提示符中显示.bat文件的内容,对于程序的运行没有影响。想写就写,就这样。
暂停
这个也无所谓。
只要写了这个,命令提示符窗口就不会自动消失。对服务器的运行没有任何影响。
不需要GUI
据说写这个会更轻松。
如果不写,会出现命令提示符和Minecraft服务器的GUI画面。写了之后,只会有命令提示符。后者稍微快一些。
尽管信息有些混乱,但不需要使用连字符。如果加入连字符,GUI会正常显示。
得出结论
java -server -Xmx8G -Xms8G -jar server.jar nogui
pause
简洁即是最好的。