【2025年8月最新版】MinecraftサーバーTPS最適化完全ガイド – Sparkプロファイラによる科学的ラグ対策

【2025年8月最新版】MinecraftサーバーTPS最適化完全ガイド - Sparkプロファイラによる科学的ラグ対策






【2025年8月最新版】MinecraftサーバーTPS最適化完全ガイド – Sparkプロファイラによる科学的ラグ対策



Minecraft TPS最適化完全ガイド

【2025年8月最新版】Sparkプロファイラによる科学的ラグ対策

20

理想TPS

50ms

理想MSPT

1.21.8

対応バージョン

目次

サーバーラグの深刻な問題

マイクラサーバーで最も深刻な問題の一つが、TPS(Ticks Per Second)の低下です。プレイヤーの動きがカクカクし、レッドストーン回路が正常に動作しない…そんな経験はありませんか?

この記事では、Sparkプロファイラを使った科学的なラグ原因分析から、実践的な解決策まで完全解説します!

1. TPSとMSPTの基礎知識

TPS(Ticks Per Second)

  • サーバーが1秒間に処理できるゲームティック数
  • 理想値:20TPS(1ティック = 50ms)
  • 18TPS以下:プレイヤーに体感できるラグ
  • 15TPS以下:深刻なパフォーマンス問題

MSPT(Milliseconds Per Tick)

  • 1ティックの処理にかかる時間(ミリ秒)
  • 理想値:50ms以下
  • 60ms以上:ラグの発生
  • 100ms以上:重大な問題

ラグの種類と特徴

サーバーラグ(TPS低下)

  • 症状:全プレイヤーに影響
  • 原因:CPU処理、メモリ不足、重い処理
  • 確認方法:/tps

クライアントラグ(FPS低下)

  • 症状:個別プレイヤーのみ
  • 原因:グラフィック処理、クライアント設定
  • 確認方法:F3キーでFPS確認

ネットワークラグ(遅延)

  • 症状:動作の遅延、巻き戻り
  • 原因:回線品質、距離、パケットロス
  • 確認方法:ping値の測定

2. Sparkプロファイラの導入と基本操作

Sparkプラグインのインストール

Bukkit/Spigot/Paper サーバー

# pluginsフォルダにダウンロード
cd /opt/minecraft/plugins
wget https://ci.lucko.me/job/spark/lastSuccessfulBuild/artifact/spark-bukkit/build/libs/spark-bukkit-1.10.73.jar

Fabric/Forge サーバー(MOD版)

# modsフォルダにダウンロード
cd /opt/minecraft/mods
wget https://ci.lucko.me/job/spark/lastSuccessfulBuild/artifact/spark-fabric/build/libs/spark-fabric-1.10.73.jar

基本的なプロファイリング手順

1

プロファイリング開始

/spark profiler start

2

問題の再現

ラグが発生している状況を5-10分間維持

3

プロファイリング停止

/spark profiler stop

4

結果の確認

/spark profiler open

高度なプロファイリングオプション

特定要素に絞った分析:

# エンティティのみをプロファイル
/spark profiler start --only-ticks-over 50 --thread server

# 特定ワールドのみ
/spark profiler start --combine-all --thread server

# メモリ使用量も同時に分析
/spark heapdump

3. Timings v2による詳細分析

Timings v2の有効化

Paper/Spigot サーバーでの設定:

# spigot.yml
settings:
  debug: false
  timeout-time: 60
  restart-on-crash: true
  restart-script: ./start.sh
timings:
  enabled: true
  verbose: true
  server-name-privacy: false
  hidden-config-entries:
  - database
  - proxies
  history-interval: 300
  history-length: 3600

Timingsレポートの取得

基本コマンド:

/timings on
# 5-10分間の通常プレイ
/timings paste

詳細分析用:

/timings reset
/timings on
# 問題発生時のプレイ
/timings paste

Timingsレポートの読み方

重要な確認項目:

  1. 1
    Total Time: 全体の処理時間
  2. 2
    Tick Time: ティック処理時間
  3. 3
    Entity Activation: エンティティ処理
  4. 4
    Tile Entity Ticking: タイルエンティティ処理
  5. 5
    World Ticking: ワールド更新処理

問題のある値の目安:

Avg Tick: > 50ms (問題)
Entity Activation: > 10ms (要注意)
Tile Entity: > 15ms (重大)
World Ticking: > 20ms (問題)

4. エンティティ削減の実践的手法

エンティティ数の確認

基本的な確認コマンド:

/forge entity_count
/minecraft:summon
/essentials:entitycount

詳細分析:

# エンティティタイプ別カウント
/spark profiler start --only-ticks-over 100 --thread server
# エンティティの位置確認
/minecraft:execute as @e run data get entity @s Pos

効果的なエンティティ管理

自動削除設定例(server.properties):

# エンティティ削除設定
entity-broadcast-range-percentage=100
entity-tracking-range:
  players: 48
  animals: 48
  monsters: 48
  misc: 32
  display: 128

# スポーン制限
spawn-limits:
  monsters: 15
  animals: 10
  water-animals: 5
  water-ambient: 20
  ambient: 15

プラグインによる管理(ClearLag設定例):

# config.yml
settings:
  auto-removal-enabled: true
  removal-broadcast-enabled: true
  removal-delay: 300 # 5分間隔

auto-removal:
  enabled: true
  broadcast: true
  autoremoval-interval: 300
  items:
    - minecraft:cobblestone
    - minecraft:dirt
    - minecraft:stone
  
entities:
  enabled: true
  limit: 1000
  check-interval: 120
  remove:
    - minecraft:zombie
    - minecraft:skeleton
    - minecraft:spider

緊急時のクリーンアップコマンド

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

# 特定範囲のモンスター削除
/minecraft:kill @e[type=#minecraft:hostile,distance=..100]

# 古いエンティティの削除(5分以上存在)
/minecraft:kill @e[type=item,nbt={Age:6000s}]

# エクスペリエンスオーブの削除
/minecraft:kill @e[type=experience_orb]

5. タイルエンティティ最適化

重いタイルエンティティランキング

1

ホッパー

最も重い処理

2

レッドストーン回路

複雑な信号処理

3

チェスト(特に大型)

在庫管理

4

かまど・溶鉱炉

製錬処理

5

看板

文字レンダリング

ホッパー最適化テクニック

悪い例:

[チェスト]
   ↓
[ホッパー] → [ホッパー] → [ホッパー] → [チェスト]

良い例:

[チェスト]
   ↓
[ホッパー]
   ↓
[水流輸送]
   ↓
[ホッパー] → [チェスト]

ホッパー設定の最適化(Paper):

# paper.yml
hopper:
  cooldown-when-full: true
  disable-move-event: false
  ignore-occluding-blocks: false
  
hopper-amount: 1
ticks-per:
  hopper-transfer: 8  # デフォルト: 8
  hopper-check: 1     # デフォルト: 1

レッドストーン回路の最適化

効率的なレッドストーン設計:


  • クロック回路の削減: 必要最小限に

  • 信号強度の最適化: 15ブロック以内で分割

  • リピーターの削減: 可能な限り直接接続

  • オブザーバーブロックの制限: 連鎖反応を避ける

問題のある回路パターン:

高速クロック回路(1tick間隔)
巨大なレッドストーン配線
無限ループ回路
不必要なリピーター連鎖

6. 効果的なラグ対策プラグイン

必須プラグイン一覧

パフォーマンス監視


  • Spark: 総合プロファイラ

  • Observable: リアルタイム監視

  • LagGoggles: ビジュアルラグ診断

エンティティ管理


  • ClearLag: 定期的なクリーンアップ

  • EntityLimiter: エンティティ数制限

  • MobLimiter: モブスポーン制御

チャンク最適化


  • ChunkManager: チャンク管理

  • LaggRemover: ラグ要因除去

  • TileEntityLimiter: タイルエンティティ制御

プラグイン設定例

ClearLag 最適設定:

settings:
  auto-removal-enabled: true
  removal-broadcast-enabled: true
  removal-delay: 300
  
modules:
  limit:
    enabled: true
    max: 1000
    check-interval: 60
    
  chunk-entity-limiter:
    enabled: true
    limit: 100
    
  mob-range:
    enabled: true
    range: 64

Observable 監視設定:

performance:
  tps-threshold: 18.0
  mspt-threshold: 55.0
  memory-threshold: 85
  
alerts:
  discord-webhook: "https://discord.com/api/webhooks/..."
  enable-broadcasts: true
  enable-actionbar: true

7. プリベンティブ(予防的)監視システム

自動監視スクリプト

TPS監視とアラート:

#!/bin/bash
# tps_monitor.sh

TPS_THRESHOLD=18
ALERT_EMAIL="admin@example.com"
LOG_FILE="/var/log/minecraft_tps.log"

while true; do
    # TPSの取得(Sparkプラグイン使用)
    TPS=$(screen -S minecraft -p 0 -X stuff "spark tps$(echo -ne '\r')" | grep "TPS" | awk '{print $2}')
    
    if (( $(echo "$TPS < $TPS_THRESHOLD" | bc -l) )); then
        echo "$(date): LOW TPS DETECTED: $TPS" >> $LOG_FILE
        
        # アラートメール送信
        echo "Minecraft server TPS is low: $TPS" | \
        mail -s "Minecraft TPS Alert" $ALERT_EMAIL
        
        # 自動プロファイリング開始
        screen -S minecraft -p 0 -X stuff "spark profiler start$(echo -ne '\r')"
        sleep 300  # 5分間プロファイル
        screen -S minecraft -p 0 -X stuff "spark profiler stop$(echo -ne '\r')"
        screen -S minecraft -p 0 -X stuff "spark profiler open$(echo -ne '\r')"
    fi
    
    sleep 60  # 1分間隔でチェック
done

Grafana ダッシュボード設定

重要なメトリクス:

# prometheus設定例
- job_name: 'minecraft-spark'
  static_configs:
    - targets: ['localhost:9225']
  scrape_interval: 5s
  metrics_path: /metrics

# 監視項目
- minecraft_tps
- minecraft_mspt
- minecraft_memory_used
- minecraft_entities_count
- minecraft_chunks_loaded
- minecraft_players_online

アラートルール:

groups:
- name: minecraft_performance
  rules:
  - alert: MinecraftLowTPS
    expr: minecraft_tps < 18
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "Minecraft TPS is low: {{ $value }}"
      
  - alert: MinecraftHighMSPT
    expr: minecraft_mspt > 60
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "Minecraft MSPT is high: {{ $value }}ms"

8. おすすめサーバー構成

小中規模サーバー最適化構成

🏆 安定重視

エックスサーバー VPS for Game

高性能CPU(3コア〜)で安定したTPS維持
大容量メモリでエンティティ処理が快適
専用サポートでトラブル時も安心
自動バックアップでデータ保護

TPS最適化プラン:
  • 8GBプラン:月額4,400円(20人以下推奨)
  • 16GBプラン:月額9,750円(50人以下推奨)
稼働率保証
99.99%
ストレージ
NVMe SSD
監視
24時間

公式サイトで詳細を見る

🎯 コスパ重視

ConoHa for GAME

時間課金制で効率的な運用
高速SSDでチャンク読み込みが快適
豊富なテンプレートで簡単セットアップ
初期費用無料

料金プラン:
  • 8GBプラン:月額4,066円
  • 16GBプラン:月額9,834円
料金体系
柔軟
リージョン
選択可能
API
充実

公式サイトで詳細を見る

💰 予算重視

カゴヤ CLOUD VPS

最安級価格でコスト効率重視
安定した性能でTPS維持
国内企業の信頼性
長期利用に最適

料金プラン:
  • 4GBプラン:月額1,958円(軽量サーバー)
  • 8GBプラン:月額7,700円(中規模サーバー)
コスパ
高い
契約
長期割引
サポート
充実

公式サイトで詳細を見る

パフォーマンス最適化設定

JVM引数(TPS重視):

java -Xms8G -Xmx8G \
  -XX:+UseG1GC \
  -XX:G1HeapRegionSize=4M \
  -XX:MaxGCPauseMillis=50 \
  -XX:+ParallelRefProcEnabled \
  -XX:+AlwaysPreTouch \
  -XX:+DisableExplicitGC \
  -jar server.jar nogui

server.properties(TPS最適化):

# 描画距離の最適化
view-distance=6
simulation-distance=4

# エンティティ最適化
max-entity-cramming=8
entity-broadcast-range-percentage=75

# その他最適化
network-compression-threshold=512
player-idle-timeout=60

推奨サーバースペック比較表

プレイヤー数 CPU メモリ ストレージ 推奨サーバー
5-10人 2コア 4GB SSD 50GB ConoHa for GAME
11-30人 4コア 8GB SSD 100GB XServer VPS for Game
31-50人 6コア 16GB SSD 200GB さくら VPS

まとめ

マイクラサーバーのTPS低下は複雑な問題ですが、適切な分析ツールと対策により必ず解決できます。Sparkプロファイラを使った科学的アプローチにより、推測ではなく事実に基づいた最適化が可能になります。

TPS最適化の重要ポイント

1

継続的な監視

SparkとObservableによる24時間監視

2

事実に基づく分析

推測ではなくプロファイリング結果で判断

3

段階的な最適化

一度に多くの変更をせず、効果を検証

4

予防的措置

問題が発生する前の対策実装

5

適切なインフラ

サーバー性能がボトルネックにならない構成

特にエックスサーバー VPS for GameConoHa for GAMEカゴヤ CLOUD VPSは、それぞれ異なるニーズに対応した優秀なサービスです。

予算と規模に応じて適切に選択することで、安定した20TPSを維持できます。

🚀

2025年のマイクラサーバー運用

もはや「なんとなく重い」は通用しません。
科学的なアプローチで、プレイヤーが快適に遊べる環境を提供しましょう!

実証済みの手法
科学的分析
快適なプレイ環境

※本記事は2025年8月時点の情報に基づいて執筆されています。各プラグインやツールのバージョンは最新のものを使用し、定期的なアップデートを心がけてください。

免責事項: サーバーの設定変更は事前にバックアップを取り、テスト環境で動作確認を行ってから本番環境に適用してください。各プラグインの利用規約を遵守し、サーバーの安定稼働を最優先に運用してください。


目次