ゼノム=ソルダークの倉庫

プログラミングやゲーム、コンテンツ制作のメモ書きブログ

高性能のMinecraftのサーバーの立て方

また最近Minecraftマルチプレイをやり始めたので、サーバーを立てる。

その時にできるだけ高性能の設定を適用することでラグに強いサーバーを立てることができる。

設定はbatファイルに以下の内容を記述することで反映される。

よくある設定

検索などで調べるとよくあるメモリ割り当て

java -Xmx4096M -Xms2048M -jar <起動する.jarファイル> nogui

pause

-Xmxに最大使用メモリの値を、-Xmsに最小使用メモリを記述する。

noguiを記述することで、デフォルトで起動したときのjavaUIを出力しないようにする。

pauseを記述することで、プログラム終了時に、「続行するにはキーを押してください...」を出力するようになる。

サーバーが落ちた際などに、何が原因で落ちたか見返すことができる。

使用するJavaの指定

<インストールされているjavaのフルパス> -Xmx8192M -Xms4096M -jar <起動する.jarファイル> nogui

pause

複数javaをインストールしている人は、使用したいjavaのフルパスを記述する。 javaだけだと、環境パスに設定されているJavaで起動する。 64bitをインストールしたはずなのになんで32bitのjavaでサーバーが起動しているんだ? っていう人は直接指定してみよう。

同じPCでクライアントとサーバーを両立する場合

java -server -Xmx8192M -Xms4096M -jar <起動する.jarファイル> nogui nogui

pause

自分もプレイするPCでサーバーを立てる場合-serverの記述を入れないと、同じコアのCPUで動いてしまうのでサーバーもクライアントも重くなる。

大量にModを導入する場合

java -server -Xmx8192M -Xms4096M -XX:MetaspaceSize=216M -XX:MaxMetaspaceSize=512M -jar <起動する.jarファイル> nogui

pause

-XX:MetaspaceSize-XX:MaxMetaspaceSizeを記述することでModのクラスファイルを読み込むスペースを増やすことができる。

記述なしのデフォルトでは64Mが設定されている。

記述することで起動時のModの読み込み速度があがるっぽい。

javaのバージョンが7以前だと-XX:PermSize -XX:MaxPermSizeと記述していた部分。

CPUコアを複数割り当てる

java -server -Xmx8192M -Xms4096M -XX:MetaspaceSize=216M -XX:MaxMetaspaceSize=512M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -jar <起動する.jarファイル> nogui

pause

-XX:+UseConcMarkSweepGC~-XX:+AggressiveOptsまでの記述で、CPUコアの使用数を割り当てる。

割り当てる数は途中の-XX:ParallelGCThreads=4で割り当てる。(ここでは4コア割り当てている)

複数コアで動作させることにより処理速度が向上し、ラグが軽減される。