「重い」の原因は、サーバー処理(TPS低下)・通信ラグ・クライアント描画の3種類に分かれます。先に切り分けないと、対処が空振りします。 計測には無料MODのsparkを使い、/spark tps と /spark profiler で原因をMOD名や処理名として特定します。対処は、不要MODの削減→エンティティ対策→メモリ割当→Aikar’s flagsの順に行います。全部やってもMSPTが常時50msを超えるならスペック不足なので、そこで初めて増強を検討します。

重さの原因は3種類あり、対処法が違う

サーバーが重いとき、「スペックを上げれば直る」と考える人が多いです。 原因がクライアント側や通信にある場合、サーバーを増強しても改善しません。 反対に、サーバー処理が原因なら、クライアントの軽量化MODは効きません。

この記事では、計測して原因を特定してから、無料でできる順に対処します。 スペック増強は最後の手段で、必要になる判断基準も示します。

STEP1: どこが重いのかを切り分ける

症状を見れば、どこが重いかをほぼ絞り込めます。

症状 誰に起きるか 疑う場所
モブがワープする・作物や装置が遅い・時間の進みがおかしい 全員に同時に起きる サーバー処理(TPS低下)
壊したブロックが戻る・攻撃が当たらない・視点移動は滑らか 特定の人だけ、または回線が遠い人 通信ラグ(ping)
画面のコマ落ち(FPS低下)。シングルプレイでも重い 自分だけ クライアント描画
  • TPS = サーバーが1秒間に処理する回数。上限は20で、20を下回ると世界全体がスローになります
  • MSPT = 1回の処理にかかったミリ秒。50ms以下なら健全です(50ms×20回=1秒)

クライアント描画が原因なら、サーバー側の対処は不要です。 各自のPCで、軽量化MOD(Sodium系。Forge 1.20.1ならEmbeddium等)の導入、描画距離の短縮、影MODの設定緩和を行います。 以降はサーバー処理(TPS低下)の解決に絞ります。

STEP2: sparkで計測する

sparkは無料のパフォーマンス計測MODです。 CurseForgeまたはModrinthからForge版(Fabric版もあり)を入手し、サーバーの mods フォルダに入れて再起動すると使えます。

まず現状を確認します。OP権限でコンソールかチャットから実行します。

/spark tps

直近のTPSとMSPTが表示されます。 TPSが常時20付近でMSPTが50ms以下なら、サーバー処理は健全です。重さの原因は通信かクライアント側にあります。

TPSが落ちているなら、プロファイラで何が時間を使っているかを計測します。

/spark profiler start --timeout 300

5分間計測して自動停止し、結果ページのURLがチャットに出ます。 手動で止めるなら /spark profiler stop です(コマンド仕様の出典: spark公式ドキュメント)。

STEP3: 結果の見方

結果ページには、サーバーの処理内容が時間割合(%)のツリーで表示されます。 上から展開していき、割合の大きい枝の名前を見ます。

  • Entity 系が太い → モブやアイテムの処理が多すぎます。特定MODのエンティティ名が出ていれば、そのMODが原因です
  • BlockEntity / TileEntity 系が太い → ホッパーや機械類の設置が多すぎます
  • 特定MODのパッケージ名(例: com.example.somemod.*)が太い → そのMODが直接の原因です
  • ServerChunkProvider 等のチャンク生成系が太い → 探索や地形生成MODの負荷です

あわせて /spark health を実行すると、TPS・メモリ使用量・GC(メモリ掃除処理)の頻度が一覧で出ます。 GCが数秒おきに走っている場合は、メモリ不足のサインです。

STEP4: 対処する(効果とコストの順)

1. 使っていないMODを抜く(無料・効果大)

プロファイラの上位に出たMODと、入れたけれど誰も使っていないMODを減らします。 ワールドをバックアップしてから数個ずつ抜き、/spark tps で再計測します。 地形生成系と常時スキャン系(サーバー側マップMOD等)は、特に負荷が大きいです。

2. エンティティを減らす(無料・効果大)

TPS低下の代表的な原因は、エンティティの過密です。

  • 放置ファームやトラップに溜まったモブを処理する(溜めすぎない設計に変更)
  • 床に散乱したドロップアイテムを回収・削除する
  • ホッパーの長い連結を減らす(コンテナ系MODや水流輸送で代替)
  • 村人の過密繁殖、額縁やアーマースタンドの大量設置を見直す

3. メモリ割当を見直す(無料・条件次第)

/spark health でGCの連発や使用量の張り付きが見えたら、メモリ不足です。 割当の目安と設定方法はMODサーバーのメモリ目安へ。 割当が多すぎる場合も、適正化するとGC1回あたりの停止時間が短くなります。

4. Aikar’s flagsを設定する(無料・GCスパイク対策)

Aikar’s flagsは、GCによる定期的なカクつきを抑えるJava起動引数のセットです。コミュニティの実質標準になっています(出典: PaperMC公式ドキュメント)。 Forgeなら user_jvm_args.txt に次を貼り付けます(-Xms/-Xmxは自分の割当に変更)。

-Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC -XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1

Aikar’s flagsが効くのは、GCが原因のスパイクだけです。 プロファイラでMODの処理が重いと出た場合は、根本の解決になりません。

STEP5: 再計測とスペック不足の判断

対処のたびに /spark tps で再計測し、効果を数字で確認します。 次の条件に当てはまるなら、サーバーの性能の限界と判断できます。

  • 不要MODの削減とエンティティ対策の後も、少人数でMSPTが常時50msを超える
  • プロファイラの上位が特定のMODではなく、処理全体が満遍なく重い
  • メモリを増やしたくても、物理メモリにもう余裕がない
  • CPU使用率で1コアだけが常に張り付いている。Minecraftはコア数より1コアの速さが効きます

限界と判断したら、選択肢は2つです。

  1. MOD構成を削る。費用はかかりません。遊び方を変えられるなら、これで足ります
  2. サーバーの性能を上げる。今のMOD構成のまま遊びたい場合の方法です。自宅PCなら上位のVPSへ、VPSなら上位プランへ移ります

必要なスペックはMODサーバーのメモリ目安とPixelmonサーバーに必要なスペックを、移行先の選び方はマイクラ向けVPS比較を参考にしてください。

Official site

対処してもTPSが戻らない=スペック不足と判断できたら、8GB/16GB帯へ

【ConoHa for GAME】マルチプレイがかんたんにすぐ遊べるゲームサーバー

プラン変更に対応(2026-08-29時点・公式サイト)

対処後の /spark tps でTPSが20に張り付き、ワープしていたモブが滑らかに歩き出せば解決です。 その状態を24時間維持する構成づくりは、下の関連記事にまとめています。

次に読む:

sparkを含む運営向けMODの一覧はサーバー運営者向けの便利MOD12選を参照してください。

sparkのコマンドと結果画面の読み方はsparkの使い方で1つずつ解説しています。