高性能の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コア割り当てている)
複数コアで動作させることにより処理速度が向上し、ラグが軽減される。