【2025年最新】マインクラフトTPS最適化完全ガイド – サーバーパフォーマンス向上の実践的手法

【2025年最新】マインクラフトTPS最適化完全ガイド - サーバーパフォーマンス向上の実践的手法






【2025年最新】マインクラフトTPS最適化完全ガイド – サーバーパフォーマンス向上の実践的手法



マインクラフトTPS最適化完全ガイド

サーバーパフォーマンス向上の実践的手法【2025年8月最新】


2025年8月更新


Paper/Spigot対応


実践的手法

最新更新情報

最終更新:2025年8月
本記事は2025年8月時点の最新情報に基づいて執筆されています。Minecraft 1.21.8、Paper 1.21、およびSpigot最新版に対応した最新の最適化手法を詳細に解説します。

目次

1. TPSの基本知識

TPSとは?

TPS(Ticks Per Second)は、マインクラフトサーバーが1秒間に実行できるゲーム内処理の回数を表します。理想的な値は20TPSで、これは1秒間に20回の処理を行うことを意味します。

TPS基準値

  • 20.0 TPS: 完璧(理想値)
  • 19.0+ TPS: 良好
  • 18.0+ TPS: やや重い
  • 16.0- TPS: 重い(要対策)

2025年最新:TPSパフォーマンス指標

MSPT (Milliseconds Per Tick)
理想値: 50ms以下
警告値: 80ms以上
Memory Usage
理想値: 割り当ての70%以下
警告値: 85%以上
Chunk Loading
理想値: 5chunks/s以下
警告値: 10chunks/s以上

2. 測定・分析ツール

Spark プロファイラー

2025年最新のSparkプロファイラーは、リアルタイムでサーバーパフォーマンスを分析できる最も強力なツールです。

基本コマンド


/spark profiler
/spark profiler --timeout 60
/spark profiler --thread *
/spark heap

2025年新機能

  • リアルタイム分析ダッシュボード
  • 自動パフォーマンス警告
  • クロスプラットフォーム対応

Timings v2

Paper/Spigot標準のパフォーマンス分析ツール。詳細なタイミング情報を提供します。

Timings コマンド


/timings on
/timings paste
/timings report
/timings reset

注意点

Sparkと同時使用は避けてください。パフォーマンスへの影響を最小化するため、測定後は必ずオフにしましょう。

基本測定コマンド一覧

TPS・パフォーマンス確認


/tps # 現在のTPS表示
/mspt # ミリ秒/tick表示
/lag # 詳細パフォーマンス
/paper metrics # Paper詳細統計
/gc # ガベージコレクション実行

エンティティ・チャンク情報


/paper entity # エンティティ統計
/paper chunks # チャンク情報
/paper heap # メモリ使用量
/paper mobcaps # モブキャップ確認
/paper reload # Paper設定リロード

3. Paper/Spigot最適化設定

2025年8月重要更新

Paper 1.21では設定ファイル構造が大幅に変更されました。従来の paper.yml は廃止され、新しい config/paper-global.yml と config/paper-world-defaults.yml システムに移行しています。

paper-global.yml 設定

config/paper-global.yml


# 2025年推奨設定
proxies:
  proxy-protocol: false
  velocity:
    enabled: false

chunk-system:
  gen-parallelism: default
  io-threads: -1
  worker-threads: -1

misc:
  fix-entity-position-desync: true
  load-permissions-yml-before-plugins: true
  region-file-cache-size: 256
  use-alternative-luck-formula: false

最適化効果

チャンク処理の並列化により、大規模サーバーで平均15-25%のパフォーマンス向上を実現します。

paper-world-defaults.yml 設定

config/paper-world-defaults.yml


# エンティティ最適化
entities:
  spawning:
    despawn-ranges:
      ambient: 128
      axolotls: 128
      creature: 128
      misc: 32
      monster: 128
      underground_water_creature: 128
      water_ambient: 64
      water_creature: 128

# チャンク最適化
chunks:
  auto-save-interval: default
  delay-chunk-unloads-by: 10s
  entity-per-chunk-save-limit:
    arrow: 16
    ender_pearl: 8
    experience_orb: 16
    fireball: 8
    small_fireball: 8
    snowball: 8

server.properties 最適化設定

基本設定


# 基本パフォーマンス設定
view-distance=8
simulation-distance=6
entity-broadcast-range-percentage=100
network-compression-threshold=256
max-tick-time=60000

高度な設定


# 高度な最適化
sync-chunk-writes=false
use-native-transport=true
rate-limit=0
spawn-protection=0
max-world-size=29999984

2025年最新推奨値

view-distance: プレイヤー数×2+4(最大12)
simulation-distance: view-distanceの75%
network-compression-threshold: 高性能サーバーなら512、一般的なサーバーなら256

4. エンティティ最適化

モブ制限設定


spawn-limits:
  monsters: 50
  animals: 8
  water-animals: 7
  water-ambient: 10
  ambient: 1

大規模サーバー向けの推奨値。プレイヤー数に応じて調整してください。

AI制限設定


per-player-mob-spawns: true
mob-spawn-range: 6
entity-activation-range:
  animals: 16
  monsters: 24
  raiders: 48
  misc: 8

モブのAI処理を制限してCPU負荷を軽減します。

ティック制限


entity-per-chunk-save-limit:
  arrow: 8
  ender_pearl: 8
  experience_orb: 16
  fireball: 8
  item: 16

チャンクあたりのエンティティ数を制限します。

エンティティパフォーマンス分析

最適化チェックリスト

レッドストーン回路の最適化
クロック回路やホッパー使用を最小限に

アイテムエンティティの管理
定期的な /kill @e[type=item] 実行

モブファームの制限
1チャンクあたり最大50エンティティ

村人の最適化
取引回数制限と定期的なリセット

5. JVMパラメータ設定(2025年最新)

Java バージョン要件

Minecraft 1.21+: Java 21が必須です。Java 17以前では起動できません。
推奨JVM: Adoptium OpenJDK 21, GraalVM EE 21, または Amazon Corretto 21

メモリ設定(8GB推奨)

start.sh / start.bat


java -Xms8G -Xmx8G \
-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 paper.jar --nogui

効果

G1GCによりGCポーズ時間を50-80%短縮。メモリ使用効率が大幅に向上します。

大容量メモリ設定(16GB+)

大規模サーバー向け


java -Xms16G -Xmx16G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=35 \
-XX:G1MaxNewSizePercent=45 \
-XX:G1HeapRegionSize=16M \
-XX:G1ReservePercent=25 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-XX:+UseTransparentHugePages \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar paper.jar --nogui

追加最適化

Transparent Huge Pagesによりメモリアクセス効率が向上。50人以上のサーバーに推奨。

メモリ使用量推奨値

1-10人サーバー
推奨: 6-8GB
最小: 4GB
11-30人サーバー
推奨: 10-12GB
最小: 8GB
31人以上サーバー
推奨: 16GB以上
最小: 12GB

6. ワールド最適化

チャンク最適化

推奨コマンド


# 未使用チャンクの削除
/chunky trim world 10000
/chunky start

# プリロード(推奨)
/chunky world world
/chunky radius 5000
/chunky start

# チャンク情報確認
/paper chunks

事前にチャンクをプリロードすることで、プレイヤーの移動時の負荷を大幅に削減できます。

2025年推奨設定

  • ワールドボーダー: 10000×10000
  • プリロード範囲: 5000×5000
  • 定期的な未使用チャンク削除

データベース最適化

バックアップ戦略


# 自動バックアップスクリプト
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf backup_$DATE.tar.gz world/
find backup_* -mtime +7 -delete

ワールド最適化ツール

MCEdit: 大規模地形編集
MCASelector: チャンク選択削除
Chunky: 自動プリロード

ワールド生成最適化

bukkit.yml 設定


chunk-gc:
  period-in-ticks: 300

ticks-per:
  animal-spawns: 400
  monster-spawns: 5
  water-spawns: 11
  water-ambient-spawns: 21
  ambient-spawns: 31

spigot.yml 設定


world-settings:
  default:
    merge-radius:
      item: 2.5
      exp: 3.0
    item-despawn-rate: 6000
    arrow-despawn-rate: 1200
    trident-despawn-rate: 1200

7. プラグイン最適化

推奨プラグイン

Spark
必須
LuckPerms
推奨
WorldEdit
便利
Chunky
推奨
ViaVersion
便利

避けるべきプラグイン

古いTNT系
危険
重いGUI系
注意
古い経済系
注意
スパム保護系
選択
古いワールド管理
危険

パフォーマンス測定


# プラグインごとの負荷測定
/spark profiler --timeout 60
/timings report

# プラグイン一覧確認
/plugins
/pl

定期的にプラグインのパフォーマンスを測定し、重いプラグインは代替を検討しましょう。

プラグイン設定最適化例

WorldEdit 最適化


# config.yml
limits:
  default:
    block-change-limit: 100000
    entity-remove-limit: 100000
    polygon-points-limit: 20
    polyhedron-points-limit: 20
    selection-points-limit: 5000
    butcher-radius: 50

history:
  size: 15
  expiration: 10

LuckPerms 最適化


# config.yml
sync-minutes: 3
meta-formatting:
  prefix:
    format:
      - "highest"
  suffix:
    format:
      - "highest"

inheritance-traversal-algorithm: "breadth-first"
primary-group-calculation: "stored"
argument-based-command-permissions: false

8. 監視システム構築

リアルタイム監視ツール

1. Spark Web Interface


# Spark設定
/spark monitoring enable
/spark monitoring viewer
# https://spark.lucko.me/viewer/xxxxxx

ブラウザからリアルタイムでパフォーマンスを監視可能

2. Paper Metrics


/paper metrics
/paper dumpitem
/paper syncloadinfo

Paper独自の詳細な統計情報を確認

自動アラートシステム

monitoring.sh


#!/bin/bash
# TPS監視スクリプト
TPS=$(screen -S minecraft -p 0 -X stuff "tps^M")
if (( $(echo "$TPS < 18.0" | bc -l) )); then
  echo "警告: TPS低下 ($TPS)" | mail -s "Server Alert" admin@example.com
fi

# メモリ使用量確認
MEMORY=$(free | grep Mem | awk '{printf("%.1f", $3/$2 * 100.0)}')
if (( $(echo "$MEMORY > 85.0" | bc -l) )); then
  echo "警告: メモリ使用率高 ($MEMORY%)" | mail -s "Memory Alert" admin@example.com
fi

Discord Webhook連携

Discord Webhookを使用することで、リアルタイムでパフォーマンス警告を受信できます。

パフォーマンス履歴追跡

19.8
平均TPS

45ms
平均MSPT

72%
メモリ使用率

24
オンラインプレイヤー

9. トラブルシューティング

TPS低下の診断と対策

診断手順

  1. 1

    /spark profiler –timeout 120
    長時間のプロファイリングでボトルネックを特定
  2. 2

    /paper entity
    エンティティ数をワールド別に確認
  3. 3

    /timings report
    プラグイン別の処理時間を分析
  4. 4

    /paper chunks
    チャンクの読み込み状況を確認

緊急対策コマンド


# アイテムエンティティ削除
/kill @e[type=item]

# 経験値オーブ削除
/kill @e[type=experience_orb]

# ガベージコレクション強制実行
/gc

# チャンク強制アンロード
/paper chunks unload

# サーバー再読み込み(最終手段)
/reload confirm

メモリ関連問題の解決

OutOfMemoryError

原因: ヒープサイズ不足、メモリリーク

対策:

  • -Xmxを増加(プレイヤー数×1GB+4GB程度)
  • 不要なプラグイン削除
  • 定期的なサーバー再起動

GCオーバーヘッド

原因: 不適切なGC設定、メモリ断片化

対策:

  • G1GCパラメータ調整
  • ヒープ領域サイズ見直し
  • プリテンション調整

ネットワーク最適化

server.properties調整


# ネットワーク最適化
network-compression-threshold=256
entity-broadcast-range-percentage=100
player-idle-timeout=30
max-players=50
online-mode=true
rate-limit=0

Paper ネットワーク設定


# paper-global.yml
async-chunks:
  enable: true
  threads: 4

packet-limiter:
  kick-message: '&cSent too many packets'
  limits:
    all:
      interval: 7.0
      max-packet-rate: 500.0

10. 推奨ホスティングサービス

マインクラフトサーバーの安定運営には、適切なホスティングサービスの選択が重要です。以下は2025年8月時点での推奨サービスです。

ConoHa for GAME

ゲーム特化VPS

推奨プラン:
8GBプラン以上
月額料金:
1,848円~
初期費用:
無料

特徴

  • マインクラフト専用テンプレート
  • 自動構築機能
  • 初心者向けUI
  • 高性能SSD標準

公式サイトへ

XServer VPS for Game

高性能VPS

推奨プラン:
8GBプラン以上
月額料金:
2,200円~
初期費用:
無料

特徴

  • ゲーム専用VPS
  • Minecraftテンプレート
  • 高性能CPU
  • 24時間サポート

公式サイトへ

KAGOYA CLOUD VPS

企業向け

推奨プラン:
8GB以上
月額料金:
従量課金制
初期費用:
無料

特徴

  • 柔軟なスペック選択
  • 従量課金制
  • 高い可用性
  • 企業向け機能

公式サイトへ

ホスティング選択のポイント

必須スペック

  • CPU: 4コア以上
  • RAM: 8GB以上
  • SSD: 100GB以上
  • 帯域: 無制限または十分な容量

重要な機能

  • 自動バックアップ
  • 24時間サポート
  • Java 21対応
  • 簡単な管理パネル

まとめ

実装すべき最適化(優先順)

  1. 1

    JVMパラメータの最適化
    Java 21 + G1GC + Aikarフラグ
  2. 2

    Paper設定の調整
    エンティティ制限・チャンク最適化
  3. 3

    監視システムの構築
    Spark + 自動アラート
  4. 4

    ワールド・プラグインの最適化
    軽量化・不要な機能削除

期待できる効果

TPS向上
平均15-25%の性能向上

メモリ効率
GCポーズ時間50-80%短縮

安定性向上
クラッシュ頻度の大幅削減

適切な最適化により、プレイヤーにとって快適なマインクラフト体験を提供できます

免責事項

※本記事は2025年8月時点の情報に基づいて執筆されています。内容の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。

※サーバー設定の変更は慎重に行い、必ず事前にバックアップを取得してください。設定変更により発生した問題について、当記事では責任を負いかねます。


目次