ひとり勉強ログ

ITエンジニアの勉強したことメモ

【マインクラフト】Windowsでマルチサーバーが重い場合の割当メモリの増やし方

マインクラフトのマルチサーバーをWindowsで起動している場合、メモリが足らずMobの動きがカクカクしてしまうことがある。

処理を追いつかせるため、マルチサーバーへのメモリを増やす。

1.batファイルを作成する

マインクラフトのマルチサーバーを起動するjarファイル(今回はminecraft_server.1.8.8.jarとする)のあるディレクトリ内に作成する。

[text] @echo off java -Xms2048M -Xmx2048M -jar minecraft_server.1.8.1.jar nogui pause [/text]

テキストエディタを開き、以下を入力し「start.bat」などのファイル名で保存。 ※ファイル名は起動するファイルだと分かればOK。拡張子は「.bat」で保存。

2.batファイルを実行する

2-1.コマンドプロンプトを起動

2-2.「start.bat」ファイルのあるディレクトリに移動

[text] cd C:\Users\[ユーザー名]\Documents\minecraft [/text] ※アドレスバーからパスをコピー&ペーストする。

2-3.「start.bat」ファイルを実行

[text] start.bat [/text] これで起動すれば終了。

3.batファイル実行時にエラーが出た場合

上記で起動した際に以下のようなエラーが出ることがある。 [text] Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap 続行するには何かキーを押してください . . . [/text] ひとまず何かキーを押下して終了させる。

Javaの32bitを使用している場合、最大メモリが1024Mまでしか使用できない。「start.bat」ファイルで「2048M」と指定したたことが原因。

4.[対処方法1]

4-1.「start.bat」ファイルのメモリを「1024M」に変更する

上記「1」で作成した「start.bat」ファイルの内容を以下のように変更する。 [text] @echo off java -Xms1024M -Xmx1024M -jar minecraft_server.1.8.1.jar nogui pause [/text]

これで起動する。 [text] [17:48:56] [Server thread/INFO]: Starting minecraft server version 1.8.8 [17:48:56] [Server thread/INFO]: Loading properties [17:48:56] [Server thread/INFO]: Default game type: SURVIVAL [17:48:56] [Server thread/INFO]: Generating keypair [17:48:56] [Server thread/INFO]: Starting Minecraft server on *:25565 [17:48:56] [Server thread/INFO]: Using default channel type [17:48:56] [Server thread/INFO]: Preparing level "world" [17:48:57] [Server thread/INFO]: Preparing start region for level 0 [17:48:58] [Server thread/INFO]: Done (1.140s)! For help, type "help" or "?" [/text]

5.[対処方法2]

64ビットのJavaをインストールする

5-1.現状のJavaのバージョンを確認

コマンドプロンプトにて以下を実行。 [text] java -version [/text]

32ビットの場合、以下のように表示される。 [text] java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) Client VM (build 25.131-b11, mixed mode) [/text]

5-2.64ビットjavaのダウンロード、インストール

以下ページ、「Windows オフライン (64ビット)」をダウンロード。 全オペレーティング・システム用のJavaのダウンロード

ダウンロードしたファイルを実行、「正常にインストールできました」というダイアログが出れば完了。

5-3.再度javaのバージョンを確認

[text] java -version [/text] 以下のように表示されれば64ビットになっている。 [text] java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) [/text]

5-4.再度「start.bat」ファイルを実行

[text] start.bat [/text] ※「cd」コマンドで「start.bat」ファイルのあるディレクトリまで移動していることが前提。

以下のようなダイアログが出るので、「プライベート ネットワーク(ホーム ネットワークや社内ねっとワークなど)」にチェック → 「アクセスを許可する」を押下

以下のようにサーバーが起動する。 [text] [18:05:47] [Server thread/INFO]: Starting minecraft server version 1.8.8 [18:05:47] [Server thread/INFO]: Loading properties [18:05:47] [Server thread/INFO]: Default game type: SURVIVAL [18:05:47] [Server thread/INFO]: Generating keypair [18:05:47] [Server thread/INFO]: Starting Minecraft server on *:25565 [18:05:47] [Server thread/INFO]: Using default channel type [18:05:47] [Server thread/INFO]: Preparing level "world" [18:05:47] [Server thread/INFO]: Preparing start region for level 0 [18:05:48] [Server thread/INFO]: Preparing spawn area: 38% [18:05:49] [Server thread/INFO]: Done (1.696s)! For help, type "help" or "?" [/text]

サーバーを停止する場合

コマンドプロンプトに「stop」と入力→「Enter」キーを押下。 [text] stop [/text] 以下のように停止する。 [text] [18:13:44] [Server thread/INFO]: Stopping the server [18:13:44] [Server thread/INFO]: Stopping server [18:13:44] [Server thread/INFO]: Saving players [18:13:44] [Server thread/INFO]: Saving worlds [18:13:44] [Server thread/INFO]: Saving chunks for level 'world'/Overworld [18:13:45] [Server thread/INFO]: Saving chunks for level 'world'/Nether [18:13:45] [Server thread/INFO]: Saving chunks for level 'world'/The End [18:13:45] [Server Shutdown Thread/INFO]: Stopping server 2017-07-09 18:13:45,247 ERROR Attempted to append to non-started appender ServerGuiConsole Exception in thread "Server Shutdown Thread" org.apache.logging.log4j.core.appender.AppenderLoggingException: Attempted to append to non-started appender ServerGuiConsole at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89) at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425) at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:406) at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367) at org.apache.logging.log4j.core.Logger.log(Logger.java:110) at org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1011) at net.minecraft.server.MinecraftServer.t(SourceFile:376) at net.minecraft.server.MinecraftServer$2.run(SourceFile:715) 続行するには何かキーを押してください . . . [/text]