【2025年12月最新】Minecraftサーバー上級設定完全ガイド|パフォーマンス最適化からセキュリティ強化まで

目次

冒頭の直接回答

Minecraftサーバーの「上級設定」は、(1)サーバーソフト選定(Paper/Fabric/Forge等)、(2)設定ファイル群の役割理解(server.properties / bukkit.yml / spigot.yml / Paper設定)、(3)JVM/GC最適化、(4)原因特定→対処(spark中心)を、順番に積み上げるのが最短です。いきなり数値を詰めるより、まず「どこが重いか」を測ってから最適化すると、手戻りが激減します。

要点

  • server.propertiesの詳細設定でサーバーパフォーマンスを最大30%向上可能
  • JVMフラグとメモリ割り当ての最適化により、ラグやクラッシュを大幅削減
  • ホワイトリスト、権限管理、バックアップ自動化でセキュリティと安定性を確保
  • プラグイン・MODの競合解決とパフォーマンス監視ツールの活用が必須
  • 大規模サーバー運営にはVPS環境での詳細なリソース管理が効果的

Minecraftサーバー上級設定の基礎知識

上級設定では「体験を落とさずに負荷を下げる」ことが目的になります。TPSやMSPTを見ながら、描画距離・シミュレーション距離・エンティティ挙動・ワールド設計(装置密度やMob湧き)・プラグイン構成(重い機能を外す/代替する)を調整します。最適化は“魔法の数値”ではなく、サーバーの遊び方に合わせた設計です。


サーバーソフトウェアの種類と特徴

Minecraftサーバーには大きく「バニラ」「Bukkit/Spigot系」「MOD系(Fabric/Forge系)」があります。プラグイン中心の運用なら、一般的にPaper(Spigot互換+最適化)が第一候補です。MOD中心なら、導入したいMODローダーに合わせてFabric/Forgeを選びます。大規模化するほど、ソフトの選定が安定性と運用負荷を左右します。

上級者向けの判断基準としては、(A)“やりたい機能はプラグインで足りるか/MODが必須か”、(B)“同時接続数とワールド負荷(装置・Mob)”、(C)“更新頻度(最新版追従の必要性)”を先に決めるとブレません。とくにプラグイン運用でSpigotを選ぶ理由は減っており、まずPaperで計測・調整し、それでも厳しければ構成(ワールド分離やプロキシ、装置制限)を見直します。


設定ファイルの優先順位と役割

Minecraftサーバーは、バニラ(server.properties)に加えて、導入するサーバーソフトやプラグイン基盤ごとに複数の設定ファイルを持ちます。代表例として、Bukkit系はbukkit.yml、Spigot系はspigot.yml、Paper系はPaper設定があり、さらにFork(Purpur など)は独自設定を追加します。

重要ポイントは「上書きの優先順位」というより、“どの機能に効く設定か”が分かれていることです。同じように見える項目でも、バニラ側(server.properties)は送信範囲やゲームルール、Spigot/Paper側はエンティティのアクティブ範囲や最適化ロジックなど、作用点が異なります。体感が変わらない時は、“そもそもその設定が今のバージョンで効く場所か”を確認しましょう。

また、Paperは近年のバージョンで設定ファイルが整理され、従来のpaper.ymlではなく、主にpaper-global.yml(全体設定)とpaper-world-defaults.yml(ワールド既定)、必要に応じて各ワールドのpaper-world.yml(ワールド別)で管理します。複数ワールド運用では、ワールド別設定を活用すると「メインワールドは快適優先、資源ワールドは負荷優先」といった調整がしやすくなります。


server.propertiesの詳細パラメータ設定

server.propertiesは「ゲーム体験」と「負荷」に直結します。上級設定では、最大人数・難易度などの基本項目に加え、view-distance / simulation-distance、ネットワーク(compression-threshold)、リソースパック配布、RCON/Queryなど運用面まで一括で整えます。変更は基本的に再起動で反映する運用が安全です。

パフォーマンスに影響する重要パラメータ

view-distanceはプレイヤーに送信されるチャンク範囲を制御し、小さくするほど負荷が下がる傾向があります。推奨値は6〜10で、パフォーマンスと体験のバランスを取ります。simulation-distanceはエンティティやレッドストーン等の“シミュレーション”範囲で、体感に影響が大きい割に負荷も増えやすいので、まず4〜8で様子見し、必要に応じて上げ下げします。

network-compression-thresholdは通信の圧縮閾値です。プレイヤー数が増えるほど帯域が効いてくるため、回線状況とCPUの余力を見ながら調整します。max-playersは“理論上”の上限で、実運用ではワールド負荷(装置やMob密度、プラグイン)で限界が先に来ます。上級者ほど「数値を上げる」のではなく「設計で分散する」方が安定します。

max-tick-timeは、サーバーが応答しないと判断するまでの時間(ミリ秒)です。デフォルトは60000ですが、-1に設定するとウォッチドッグを無効化できます。ただし、完全なフリーズ検出ができなくなるため、安定したサーバーでのみ推奨されます。

network-compression-thresholdは、パケット圧縮の閾値(バイト)です。デフォルトは256ですが、高速回線環境では512〜1024に上げることで、CPU負荷を削減しつつ通信を最適化できます。

マルチプレイ環境の最適設定

マルチ運用でトラブルになりやすいのは、権限(OP周り)、ホワイトリスト、チャット/コマンド乱用、バックアップ不足です。server.properties側では、enable-command-blockenforce-whitelistなどを明確にし、管理系はLuckPermsなどで“役割ごとに権限を固定”すると事故が減ります。PvPや難易度は、イベント時だけ切り替える運用も有効です。

max-playersは同時接続可能なプレイヤー数です。サーバースペックに応じて設定しますが、メモリ4GBあたり20〜30人が目安です。過剰に設定するとパフォーマンスが大幅に低下します。

spawn-protectionは、スポーン地点周辺の保護半径(ブロック)です。0に設定すると保護を無効化できます。プラグインで権限管理している場合は0推奨です。

enable-command-blockは、コマンドブロックの有効化設定です。高度な自動化やミニゲーム制作では必須ですが、セキュリティリスクもあるため、信頼できる管理者のみに権限を限定します。

enforce-whitelistをtrueにすると、ホワイトリスト更新時に該当しないプレイヤーを即座にキックします。セキュリティ重視のサーバーでは必須の設定です。


JVMフラグとメモリ最適化

パフォーマンス最適化の要は「適正なJava」と「適正なGC」です。最新系PaperではJava 21系が前提になりやすく、OS側のメモリ・スワップ・ファイルI/Oも含めて詰めると安定します。メモリを過剰に割り当てるとGCが重くなることがあるため、“多ければ速い”ではなく、必要量+余裕で決めるのがコツです。

推奨されるJVMフラグ設定(2025年版)

Aikarフラグは長年の定番ですが、サーバーのJavaバージョンやPaper側の推奨と整合する形で使うのが重要です。上級者運用では「フラグを盛る」より、GCログを見て“止まり方”を把握し、必要なら一部だけ変更します。まずは推奨テンプレを基準にして、sparkで原因特定→対処の流れを優先しましょう。

2025年現在、最も推奨されるJVMフラグは、Aikars Flagsの最新版です。基本的な起動コマンドは以下の通りです。

java -Xms10G -Xmx10G -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui

**メモリ割り当て(-Xms/-Xmx)**は、最小値と最大値を同じにすることで、メモリの動的確保によるパフォーマンス低下を防ぎます。サーバー用途の場合、システムメモリの70〜80%を割り当てるのが理想的です。

**ガベージコレクタ(GC)**は、G1GCが現在最も推奨されます。ZGCやShenandoahGCも選択肢ですが、Minecraftサーバーでは2025年現在もG1GCが最も安定しています。

メモリサイズ別の推奨設定

2GB〜4GB: 小規模サーバー(5〜15人)向け。view-distanceは6〜8、simulation-distanceは4〜6を目安にし、重い装置・スポーン施設は作りすぎない運用が安定します。

4GB〜8GB: 中規模(15〜40人)向け。ワールドを分けたり、負荷が集中する施設を別ワールドに移すと伸びます。

8GB〜16GB: 大規模向け。むしろCPU/単体性能・ストレージI/O・プラグイン設計がボトルネックになりやすく、メモリだけ増やしても改善しないことが多いです。

16GB以上: 大規模サーバー(100人以上)や、多数のMOD・プラグイン導入環境向け。この規模では、複数サーバーインスタンスを立ち上げて負荷分散することも検討します。


プラグイン・MOD環境の構築と管理

上級設定では、プラグインの“便利さ”と“重さ”の両立が課題になります。導入直後は軽くても、機能を盛るほど負荷が増えます。プラグインは「目的ごとに最小構成」→「sparkで原因特定」→「必要な分だけ増やす」が基本です。MOD環境では、ローダーとMODの相性(バージョン整合)も運用負荷になるため、更新方針を先に決めるのが重要です。

必須プラグインの選定と導入

パフォーマンス最適化系では、まずPaper標準設定の最適化(view-distance / simulation-distance / entity-activation-range など)を優先し、原因調査にはsparkを使います。エンティティを強制削除するタイプのプラグイン(例:ClearLag系)は、副作用(アイテム消失・装置破壊・ラグの根本原因を隠す)が出やすいため、導入するなら削除対象・除外設定・実行頻度を厳密に管理し、可能ならPaper設定やワールド設計で代替するのが安全です。

セキュリティ・管理系では、CoreProtect(ブロック変更のログ記録・復元)、LuckPerms(権限管理)、Vault(経済基盤)などが定番です。運営体制(複数管理者・イベント運用)ほど、ログと権限が“保険”になります。

プレイヤー体験向上系では、EssentialsX(基本コマンド)、WorldEdit/WorldGuard(編集・保護)、Multiverse-Core(マルチワールド)などが人気です。便利系を増やすほど競合も増えるので、導入前に「同系統の機能が既に入っていないか」を確認しましょう。

プラグイン競合の検出と解決

競合の典型例は、権限(複数の権限系)、チャット(複数のチャット整形)、経済(複数のエコノミー)、保護(複数の保護系)です。症状が出たら、(1)コンソールログ、(2)sparkで重い処理、(3)問題が起きるイベント(ログイン、チャンク生成、タイルエンティティ更新)を順に見て切り分けます。再現手順を固定すると、解決が早いです。

MOD環境の構築(Fabric/Forge)

MOD環境では“軽量化MOD”が多い一方、依存関係の管理が難しくなります。Fabric/Forgeはローダーが違うため、同じ名前のMODでも別物のことがあります。上級者運用では、(A)サーバー側MODとクライアント側MODの区別、(B)更新時の互換性確認、(C)クラッシュログの読み方を最低限押さえておくと安定します。


パフォーマンス監視と最適化手法

上級者ほど「体感」ではなく「計測」で判断します。TPSだけでなくMSPT、GC停止、チャンク生成、エンティティ数、プレイヤー行動(特定ミニゲーム/施設/ワールド)をセットで見ます。原因がプラグインかワールド設計かハードウェアかを切り分けられると、最適化の精度が上がります。

Sparkプラグインによる詳細分析

sparkは、サーバーの「どこが重いのか」をスタックトレース単位で可視化できるプロファイラです。Paper 1.21以降はsparkが同梱されているため、基本的に追加インストールなしで使えます(古いPaperやSpigot、Fabric/Forge環境ではプラグイン/Modとして導入します)。

まずは次のコマンドで、一定時間のプロファイルを取得します。ラグが再現するタイミングが分かるなら、その直前に実行するのがコツです。

# 5分(300秒)だけ計測してURLを出す
/spark profiler start --timeout 300

# “スパイク”が知りたい時(100ms超のtickだけ記録)
/spark profiler start --only-ticks-over 100 --timeout 300

出力されたURL(レポート)では、Server thread(メインスレッド)の負荷が最優先です。特定プラグイン名のメソッドが上位に出る場合は、そのプラグイン設定・機能の見直し、代替プラグインへの置換、あるいは対象ワールドだけ設定を緩くする…という順で対処します。

TPSは20.0が理想ですが、ボトルネックの判断にはMSPT(1tickあたりの処理時間)が有効です。50msを超え続けると、理論上TPS20を維持できません。sparkレポートで「何がMSPTを押し上げているか」を特定し、原因を1つずつ潰すのが最短ルートです。

Timingsレポートの読み方と活用

かつてBukkit/Spigot/Paperでは/timingsが定番でしたが、近年のPaperではtimingsが廃止予定(既定で無効/動作しない場合あり)となり、代替としてsparkを使う方針が明確になっています。これから新規で診断手順を作るなら、timingsではなくsparkを前提にしましょう。

過去に取得したtimingsレポートを読む必要がある場合は、主に「Tick」「Plugins」「Entities」などの比率を見て、重い要素を大枠で当たりを付けます。ただし、timingsは“どのコードが遅いか”の粒度が粗いので、最終的な犯人特定はsparkのプロファイルで行うのがおすすめです。

移行の実務としては、運用手順書の「timings取得」パートをspark取得に置き換えるだけでOKです。困った時に開発者へ渡すレポートとしても、sparkのURLの方が解析しやすいケースが多いです。

リアルタイム監視ツールの導入

長期運用では、障害時だけでなく“予兆”を検知できると強いです。メモリ逼迫やI/O遅延、GC停止が増えると、TPS低下の前に兆候が出ます。上級者は、ログローテーション、監視(CPU/メモリ/I/O/ネットワーク)、定期バックアップ、更新手順(検証→本番)をセットで整備します。


セキュリティ強化とバックアップ戦略

サーバーが大きくなるほど、荒らし・不正ログイン・設定ミス・アップデート事故のリスクが上がります。上級設定では「被害をゼロにする」ではなく「被害を最小化し、復旧を最速にする」ことを重視します。ホワイトリスト、権限、ログ、バックアップ、復旧手順(誰が何をするか)まで決めておくと、トラブル時に強いです。

ホワイトリストと権限管理

公開サーバーでも、上級者はまずホワイトリスト運用(招待制)を検討します。公開する場合でも、権限は最小限(原則OPを配らない)にし、管理操作はコンソールや限定権限で実行します。LuckPermsで「管理者」「運営」「モデレーター」「一般」など役割を固定し、権限の属人化を避けるのが安全です。

DDoS対策とファイアウォール設定

VPSやクラウド環境でサーバーを運営する場合、DDoS攻撃対策が必須です。多くのVPSプロバイダーは基本的なDDoS保護を提供していますが、追加の対策も検討します。

TCPShieldCloudflare Spectrumなどのプロキシサービスを利用すると、サーバーのIPアドレスを隠蔽し、DDoS攻撃を緩和できます。無料プランでも基本的な保護が可能です。

ファイアウォール設定では、Minecraftサーバーポート(デフォルト25565)以外の不要なポートを閉じます。SSH接続(ポート22)は必要に応じて開放しますが、鍵認証を使用し、パスワード認証は無効化します。

自動バックアップシステムの構築

バックアップは“取る”だけでは不十分で、復元できることが重要です。定期バックアップ(例:毎日差分+週次フル)、世代管理、別ストレージ(別リージョン/別サーバー)への退避、そして月1回でも良いので復元テストを行うと、実戦で効きます。ワールドが大きいほど、バックアップ時間とI/Oが負荷になるため、運用時間帯(深夜)と方式(スナップショット/rsync等)を工夫します。

自動バックアップには、プラグイン(例:BackupPaper)やスクリプト(cronジョブ)を使用します。推奨バックアップ頻度は、データの重要度に応じて1〜6時間ごとです。

バックアップスクリプトの例(Linux):

#!/bin/bash
BACKUP_DIR="/path/to/backups"
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz /path/to/minecraft/server
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete

このスクリプトをcronで定期実行し、7日以上古いバックアップは自動削除します。バックアップは別のストレージ(外部HDD、クラウドストレージ)にも保存することで、サーバー障害時のリスクを軽減します。


大規模サーバー向けの高度な設定

100人以上のプレイヤーが同時接続する大規模サーバーでは、単一サーバーの設定調整だけでは限界が来やすくなります。上級者向けの考え方は「1台を無理に最適化する」のではなく、役割分離・データ共有・入口(接続)保護を組み合わせて、負荷と障害の影響範囲をコントロールすることです。

この章では、(1)プロキシで複数サーバーを束ねる、(2)データをDBで共有する、(3)負荷に応じてサーバーを増減させる、という3本柱を、実運用でつまずきやすい点まで含めて整理します。

Waterfall/Velocityによる複数サーバー構成

大規模サーバーでは、BungeeCord系の後継であるWaterfall、または高性能なプロキシであるVelocityを入口に置き、複数のMinecraftサーバー(バックエンド)へ振り分けます。ロビー、サバイバル、建築、ミニゲームなどを別サーバーに分けることで、負荷が集中する瞬間(イベント、装置稼働、ミニゲーム開始)でも全体崩壊しにくくなります。

設計の基本は次の通りです。

  • 入口を1つにする:プレイヤーはプロキシ(25565)へ接続し、各バックエンドへ移動する
  • バックエンドは外部公開しない:ポート直結を遮断(FW/セキュリティグループ/IP制限)
  • 役割ごとに最適化方針を変える:ロビーは軽量・多数、建築は描画重視、資源は負荷重視など
  • 障害を局所化する:重いミニゲームが落ちてもロビーや他ワールドへ波及しない構成にする

特に重要なのが「転送方式(UUID/IP/スキン/権限の整合)」です。プロキシ構成では、UUIDやIPが正しく転送されないと、権限・監査ログ・BAN管理・経済などが不整合になりやすいので、Velocityなら modern 転送(secret一致)を前提に構成します。

例:Velocity(modern)+Paperバックエンドの基本形

# velocity.toml(該当部の例)
[player-info-forwarding]
mode = "modern"
forwarding-secret-file = "forwarding.secret"
# Paper(config/paper-global.yml:該当部の例)
proxies:
  velocity:
    enabled: true
    online-mode: true
    secret: "forwarding.secret の中身と一致させる"
# バックエンド側 server.properties(例)
# 認証はプロキシが担当するため(バックエンド直結はFWで遮断が前提)
online-mode=false

なお、過去にBungeeCord(spigot.ymlのbungeecord設定)を使っていた環境をVelocityへ移行する場合、設定が残っていると挙動が混ざって事故になりがちです。移行時は「古い転送設定の無効化」「secretの一致」「バックエンド直結遮断」をセットで確認してください。

運用のコツとして、最初は「ロビー+メイン(サバイバル)」の2台構成で安定させ、次に「建築」「資源」「イベント」を分けていくと、分離の効果(どの役割が重いか)が見えやすくなります。

Redis/MySQLによるデータ共有

複数サーバー構成では、サーバーを移動してもプレイヤーデータが一貫する必要があります。ここで重要なのが、永続データ(DB)リアルタイム連携(キャッシュ/通知)の分離です。

  • MySQL/MariaDB/PostgreSQL:永続データ(権限、経済、保護情報、ログ、設定など)
  • Redis:高速キャッシュやPub/Sub(クロスサーバーチャット、通知、オンライン状態、軽量な一時データ)

まず優先すべき共有は、運営が事故りやすい領域です。

  • 権限(LuckPermsなど):DB共有で全サーバーの権限を統一し、OP配布を最小化する
  • 監査/復元(CoreProtectなど):ログ量が増えるため、DB設計とバックアップ方針を先に決める
  • 経済(Vault連携の各種):DB同期対応の可否を確認し、対応していないなら設計で回避する

データ共有でつまずきやすいポイントは、(1)DBを外部公開してしまう、(2)バックアップを取っていない、(3)タイムアウトや接続数制限でラグが出る、の3つです。DBは必ず接続元を絞り、パスワードを強くし、定期バックアップと復元テストまで行ってください。

また、Redisは便利ですが、永続データの本体を置く用途には向きません(揮発運用が多い)。「Redis=速いから全部置く」ではなく、「通知や一時データ」に絞ると安定します。

負荷分散とスケーリング戦略

大規模運用の負荷分散は、ロードバランサで単純分散するよりも、ゲーム特性に合わせて“重いものを分離”する方が効果的です。特に負荷が跳ねやすいのは、チャンク生成、装置密集、Mob過剰、イベント開始時(同時処理)、大規模爆発などです。

現実的に効く分離例

  • 資源ワールド分離:探索・採掘でチャンク生成が多いワールドを切り離す
  • イベント/ミニゲーム分離:短時間に負荷が集中する処理を別サーバーへ
  • 装置制限ワールド:レッドストーン装置やMobトラップの密集を隔離する
  • 建築ワールド:見た目優先(描画距離を高めたい)を別運用にする

オートスケーリングとしてKubernetesやDocker Swarmを使う構成も可能ですが、Minecraftは“状態(ワールド)”を強く持つため設計難易度が高くなります。より現実的には、ピーク時間帯(夕方〜夜)に備えて事前にサーバーを増やし、深夜帯は縮小するといった運用が安定しやすいです。

スケーリングの前に必ずやっておきたいのが、計測(spark)→ボトルネックの特定→設計変更です。CPUが詰まっているのか、I/Oが遅いのか、プラグインが重いのかで、取るべき手段が変わります。


トラブルシューティングとデバッグ方法

サーバー運用では、設定ミス・更新事故・負荷スパイク・ネットワーク障害など、様々な問題が起きます。上級者ほど「気合で直す」のではなく、切り分け手順を固定してダウンタイムを最小化します。

基本手順(テンプレ):①症状の再現条件(いつ・誰が・どこで)→②ログ確認→③負荷計測(spark)→④変更は1回に1つ→⑤同条件で再計測。これだけで、原因不明ループを避けられます。

よくあるエラーと解決方法

「java.net.BindException: Address already in use」:同じポートを別プロセスが使用中です。既に起動しているサーバーがないか確認し、必要に応じてポート番号を変更(server.properties の server-port)します。プロキシ構成では、ロビー/各バックエンドのポートが重複していないかも確認します。

「Can’t keep up! Is the server overloaded?」:原因は一つとは限りません。チャンク生成、保存スパイク、GC停止、特定プラグインの処理、エンティティ過剰などが候補です。ピーク時に spark を取り、何がMSPTを押し上げているかを見てから対処します。

「java.lang.OutOfMemoryError」:メモリ不足です。単に-Xmxを増やす前に、(1)探索やRTPでチャンクが増えすぎていないか、(2)Mob/アイテムが過剰ではないか、(3)プラグインがリークしていないか、を疑います。原因が重いプラグインなら設定で負荷を落とし、再発しない形に整えます。

「Ticking entity」:特定エンティティがTickを食いつぶしています。ログに出る座標へ行き、原因(装置・Mob・AI・MOD挙動)を取り除きます。イベントや装置稼働でのみ発生する場合は、そのタイミングで spark を取ると特定が早いです。

「Outdated server!」「Incompatible client」:クライアントとサーバーのバージョン不一致です。プロキシ構成では、入口(プロキシ)とバックエンドでバージョンが混在していないかも確認します。Cross-play系(Geyser等)を使う場合は互換表も確認します。

ログファイルの分析手法

ログは最優先の一次情報です。重要なのは「どこから読むか」です。起動直後、問題発生時刻周辺、同じ例外が連発している行、更新直後の警告(互換・API変更)を中心に追います。

  • 起動で落ちる:依存不足、互換違い、設定ファイルの構文ミス(YAMLのインデントなど)
  • ログインで落ちる:権限/チャット/データベース連携、プロキシ転送不整合
  • 一定時間で重くなる:保存、バックアップ、GC、ログ肥大、定期タスク(プラグイン)
  • ピーク時だけ重い:チャンク生成、同時処理、イベント開始、装置集中

Linuxの確認例(必要な部分だけ抜き出す)

# 最新ログを追いかける
tail -f logs/latest.log

# エラー周辺を拾う
grep -n "ERROR\|WARN" -n logs/latest.log | tail -n 200

# 特定プラグイン名で絞る(例:LuckPerms)
grep -n "LuckPerms" logs/latest.log | tail -n 200

systemdで動かしている場合

# サービスログを確認
journalctl -u minecraft --since "1 hour ago" -n 200

デバッグモードの活用

上級者のデバッグは「計測→原因特定→対処」のループです。体感やTPSだけで判断すると遠回りになりがちなので、まず spark を使って“どこが重いか”を確定させます。

# 例:ピーク時に短時間プロファイル
/spark profiler --timeout 120 --verbose

さらに深掘りしたい場合は、Paperの「/paper debug」や「/paper heap」を使う方法もあります。ただし、ヒープダンプはサイズが大きくなりやすいため、容量と時間帯(負荷が低い時)に注意して実行してください。

# 例:Paperのデバッグ(開発者へ渡す材料)
/paper debug 500

# 例:ヒープダンプ(容量注意)
/paper heap

原因が「設定」か「プラグイン」か「インフラ」かを切り分けるために、短時間だけプラグインを外して検証する手も有効です(本番でいきなりやらず、ステージング環境で再現させるのが安全です)。


Minecraftサーバー構築に最適なホスティングサービス

Minecraftサーバーを安定運用するには、適切なホスティング環境の選択が重要です。ここでは、2025年現在の運用目線で、サーバー用途に使われやすいサービスを特徴とともに紹介します。料金やCPU世代、キャンペーンは変動するため、最終判断は必ず公式の最新情報で確認してください。

自分に最適なサーバーを選ぶには、プレイヤー数、予算、必要な機能を総合的に比較することが大切です。サーバー選びで迷った際は、サーバー比較診断サイトを活用すると、ニーズに合った候補を絞り込みやすくなります。

選定チェック(上級者向け)

  • CPU単体性能:Minecraftは単コア依存が強く、世代と性能が体感に直結しやすい
  • ストレージ:NVMe/SSD、I/Oの安定性(保存スパイク・チャンク生成に影響)
  • メモリ:増やせば良いではなく「適正+余裕」、スワップ多用は避ける
  • 回線/遅延:参加者の地域に近い拠点を選ぶ(国内中心なら国内拠点)
  • DDoS/防御:公開運用なら前提として考える(FW、IP制限、プロキシ等)
  • 運用機能:自動バックアップ、スナップショット、管理UI、監視の導入しやすさ

ConoHa for GAME – ゲーム特化の高性能VPS

ゲーム用途に寄せた管理UIやテンプレートが整っており、「まず安定して動かす」までの距離が短いタイプです。上級者運用では、テンプレ導入後にバックアップの世代管理更新手順(検証→本番)を固めると事故が減ります。

  • 向く用途:小〜中規模、短期イベント、初期構築を速くしたい
  • 運用のコツ:ピーク時にsparkを取り、重いプラグインを先に整理してから拡張
  • 注意点:便利機能を盛りすぎると結局Tickが詰まるため「最小構成→計測→追加」が安全

ConoHa for GAME 公式サイト

Xserver VPS for Game – 圧倒的な処理速度と安定性

ゲーム用途で使いやすい導線があり、安定性を優先したいケースで候補になります。中規模以上では、CPU単体性能とI/Oの安定が効いてくるため、プラン選定時は「メモリ」だけでなく「CPU世代・ストレージ」も合わせて見ておくと失敗しにくいです。

  • 向く用途:中規模以上、プラグインをある程度入れる運用、安定重視
  • 運用のコツ:定期再起動・バックアップ・監視(spark/OS監視)をセットで回す
  • 注意点:大規模化するならプロキシ分離やDB共有まで見据える

Xserver VPS for Game 公式サイト

さくらのVPS – 老舗の信頼性と柔軟なカスタマイズ

自由度が高く、OSやミドルウェア、監視、バックアップ設計まで自分で作り込みたい人に向きます。プロキシ構成、DB分離、監視スタック導入など、上級構成へ伸ばしやすいのが強みです。

  • 向く用途:上級者の自前運用、プロキシ/DB分離などの拡張構成
  • 運用のコツ:FWで管理ポートを絞り、バックアップは別ストレージへ世代管理
  • 注意点:自由度が高い分、初期設計(運用ルール)がないと事故りやすい

さくらのVPS 公式サイト

ConoHa VPS – 高速SSDと充実したテンプレート

テンプレートの手軽さと自由度のバランスが取りやすいタイプです。検証から始めて、構成が固まったら上位へ伸ばす運用がしやすいのが特徴です。将来的にプロキシ分離やDB分離を考える場合でも、段階移行しやすい構成にできます。

  • 向く用途:検証→本番の段階運用、自由度も欲しい中級者以上
  • 運用のコツ:ステージング環境を作って更新事故を防ぐ
  • 注意点:大規模化する場合は早めに役割分離(ロビー/資源/イベント)へ

ConoHa VPS 公式サイト

シンVPS – コスパ最強の新世代VPS

小規模や検証用途で「まず運用手順を固める」目的に向く選択肢です。上級設定の練習(spark、バックアップ、ステージング反映)を回して、構成が固まった段階で上位へ移行する、という使い方もできます。

  • 向く用途:小規模、検証、構成固め
  • 運用のコツ:最小構成で始め、重い要因を潰してから拡張
  • 注意点:プレイヤー数が増えるならCPU/I/Oの余力が重要

シンVPS 公式サイト

KAGOYA CLOUD VPS – エンタープライズ向けの高信頼性

高信頼性を重視する用途で候補になります。企業・コミュニティ運用など「落ちると影響が大きい」環境では、冗長性や運用機能、サポート体制を含めて検討するとよいでしょう。

  • 向く用途:エンタープライズ寄り、重要度が高いコミュニティ運用
  • 運用のコツ:プロキシ分離+DB分離+バックアップ世代管理で“戻せる設計”にする
  • 注意点:要件が重いほど構成も複雑になるため、運用手順の文書化が必須

KAGOYA CLOUD VPS 公式サイト

初心者から上級者まで:目的別おすすめサーバー

最後に、目的別の選び方を整理します。迷ったら「いま必要な規模」と「半年後に増えそうか」で決めるとブレません。

  • 初心者・手軽さ重視:ConoHa for GAME、Xserver VPS for Game(導入導線がわかりやすい)
  • 中級者・検証→本番を回したい:ConoHa VPS、シンVPS(段階運用がしやすい)
  • 上級者・完全カスタマイズ:さくらのVPS、ConoHa VPS(運用設計を自前で詰めたい)
  • 高信頼性・重要運用:KAGOYA CLOUD VPS(要件次第で選択)

どのサーバーが最適か迷う場合は、サーバー比較診断でプレイヤー数、予算、必要機能を入力し、候補を絞ったうえで公式の最新情報を確認するのがおすすめです。


よくある質問(FAQ)

Q1. Minecraftサーバーで最も重要な設定パラメータは何ですか?

最重要は「1つの数値」ではなく、体験と負荷のバランスを決める組み合わせです。まず server.properties の view-distance / simulation-distance を軸にし、次にPaper設定(エンティティやチャンクの扱い)とプラグイン構成で整合を取ります。最適化は“当てずっぽう”ではなく、sparkでMSPTの原因を見て調整するのが最短です。

  • まず調整:simulation-distance(処理範囲)
  • 次に調整:エンティティ/装置密度、重いプラグインの設定
  • 判断材料:sparkのプロファイル(ピーク時に取得)

Q2. プラグインとMODの違いは何ですか?また、どちらを選ぶべきですか?

プラグインは主にPaper/Spigot系で動作し、サーバー側の機能追加(権限、保護、経済、ワープなど)が得意です。MODはFabric/Forge/NeoForgeなどローダーが必要で、ゲームシステム自体を大きく変える(新アイテム、新機械、生成変更など)ことに強い反面、互換や更新の運用負荷が増えます。

  • プラグインが向く:管理機能、生活系、保護、運営の安定重視
  • MODが向く:ゲーム体験の大改造、MOD専用要素が必須
  • 迷ったら:まずPaper+最小プラグインで運用を固める(更新事故が少ない)

Q3. サーバーが重い(ラグい)時の対処法を教えてください

最短手順は「ピーク時にspark→原因を特定→対処→同条件で再計測」です。視野距離を下げる前に、何がMSPTを押しているか(チャンク生成、保存、特定プラグイン、エンティティ過剰)を確定させてください。闇雲に最適化プラグインを入れると原因が隠れて再発しやすくなります。

  • ピーク時に /spark profiler --timeout 120
  • 上位に出た処理(プラグイン/イベント/保存/チャンク)を優先的に対処
  • 変更は1つずつ、同条件で再計測

Q4. バックアップはどのくらいの頻度で取るべきですか?

最低でも「毎日1回+更新前」は必須です。大事なのは復元できることで、月1回でもよいので別場所へ復元して起動確認してください。対象は world フォルダだけでなく、plugins、config、起動スクリプトまで含めると事故に強くなります。

  • 頻度:毎日+更新前、イベント前後
  • 対象:world系+plugins+config+起動スクリプト
  • 保管:別ストレージへ世代管理(同一ディスクのみは危険)

Q5. セキュリティ対策で最低限やるべきことは何ですか?

最低限は「入口を絞る」「権限を絞る」「戻せる」です。具体的には、ホワイトリスト(または招待制運用)、OP最小化(LuckPerms等で役割権限)、管理ポートの閉鎖/限定公開、そして定期バックアップと復元手順の整備です。公開運用ならDDoSや直結対策も前提にしてください。

  • ホワイトリスト(可能なら)
  • OP配布を避け、権限グループで運用
  • 管理ポートは閉じる(必要ならIP制限)
  • バックアップ+復元テスト

まとめ

Minecraftサーバーの上級設定は、数値を闇雲に詰めるより、計測して原因を特定し、影響が大きい順に対処する方が確実です。server.properties(距離・圧縮など)とPaper設定(グローバル/ワールド既定)を整合させ、JVM/GCを安定させ、プラグインは最小構成から積み上げると、更新にも強い運用になります。

大規模サーバーでは、Waterfall/Velocityのプロキシ構成で役割分離し、Redis/MySQLでデータ共有を行い、ピーク時間帯(夕方〜夜)に備えたスケーリング戦略を取ることで、全体崩壊を避けやすくなります。トラブル時はログとsparkで原因を確定し、変更は1つずつ検証する手順を固定すると、復旧が速くなります。

適切なホスティング環境の選択も重要です。初心者は導入のしやすさ、上級者は自由度と拡張性、重要運用は信頼性を軸に選び、必要ならサーバー比較診断も活用して、理想的なMinecraftサーバー環境を構築しましょう。

今すぐ「ピーク時にsparkで計測」から始め、快適で安定したMinecraftサーバー運用を実現してください。


出典

目次