マイクラサーバーを運用する皆様、こんにちは。長年にわたりマイクラサーバーの運用に携わってきた経験豊富なゲーマーとして、サーバーのパフォーマンス最適化について実践的なガイドをお届けします。
本記事では、2025年7月現在の最新情報をもとに、TPS(Ticks Per Second)の向上からラグ対策まで、実際の運用現場で効果が実証された手法を詳しく解説します。初心者の方から上級者まで、それぞれのレベルに応じた最適化手法をご紹介します。
1. TPS(Ticks Per Second)の基本理解
1.1 TPSとは何か
TPS(Ticks Per Second)は、マイクラサーバーが1秒間に処理できるティック数を示す重要な指標です。理想的なTPSは20.0で、これはサーバーが1秒間に20回の処理サイクルを完了できることを意味します。
TPSの数値と体感の関係
TPS値 | サーバー状態 | プレイヤーの体感 | 必要な対策 |
---|---|---|---|
20.0 | 理想的 | 快適 | 現状維持 |
18.0-19.9 | 良好 | わずかな遅延 | 軽微な最適化 |
15.0-17.9 | 注意 | 明らかなラグ | 最適化必要 |
10.0-14.9 | 問題 | 重大なラグ | 緊急対策必要 |
10.0未満 | 危険 | プレイ困難 | 即座の対処必要 |
1.2 TPS測定方法
正確なTPS測定は最適化の第一歩です。以下のコマンドを使用してTPS値を確認できます。
/tps(SpigotやPaperサーバーの場合)
/minecraft:debug start(バニラサーバーの場合)
2. メモリ最適化とGC設定
2.1 適切なメモリ割り当て
メモリ設定はサーバーパフォーマンスに直接影響する重要な要素です。2025年7月現在、以下の基準を推奨します。
プレイヤー数とメモリ容量の関係
プレイヤー数 | バニラサーバー | 軽量MOD | 重量MOD | 工業系MOD |
---|---|---|---|---|
1-5人 | 2GB | 4GB | 6GB | 8GB |
6-15人 | 4GB | 6GB | 8GB | 12GB |
16-30人 | 6GB | 8GB | 12GB | 16GB |
31人以上 | 8GB以上 | 12GB以上 | 16GB以上 | 24GB以上 |
2.2 最適化されたJavaパラメータ
2025年7月現在、最も効果的とされているJavaパラメータ設定をご紹介します。
重要パラメータの解説
- -Xms8G -Xmx8G:最小・最大メモリを同じ値に設定することで、メモリ再割り当てのオーバーヘッドを削減
- -XX:+UseG1GC:G1ガベージコレクターを使用。大容量メモリでの低レイテンシを実現
- -XX:MaxGCPauseMillis=200:GC停止時間を200ms以下に制限
- -XX:+AlwaysPreTouch:起動時にメモリ領域を事前にタッチし、後のメモリアクセスを高速化
3. サーバー設定の最適化
3.1 server.propertiesの最適化
server.propertiesファイルの設定は、サーバーパフォーマンスに大きく影響します。2025年7月現在の推奨設定をご紹介します。
max-players=20
difficulty=normal
gamemode=survival
hardcore=false
pvp=true# パフォーマンス重要設定
view-distance=10
simulation-distance=8
entity-broadcast-range-percentage=100
max-tick-time=60000
max-build-height=256
# ネットワーク設定
network-compression-threshold=256
online-mode=true
prevent-proxy-connections=false
# ワールド設定
spawn-protection=16
max-world-size=29999984
allow-flight=false
spawn-animals=true
spawn-monsters=true
spawn-npcs=true
3.2 重要設定項目の詳細解説
view-distance(描画距離)
描画距離は最もパフォーマンスに影響する設定の一つです。以下の基準で設定してください。
サーバースペック | 推奨view-distance | 最大同時プレイヤー数 | メモリ使用量目安 |
---|---|---|---|
低スペック(2-4GB) | 6-8 | 5-10人 | 60-70% |
中スペック(6-8GB) | 8-10 | 10-20人 | 70-80% |
高スペック(12GB以上) | 10-12 | 20-30人 | 80-85% |
simulation-distance(シミュレーション距離)
simulation-distanceは、レッドストーン回路や作物の成長などの処理を行う範囲を決定します。view-distanceより小さな値に設定することで、描画は維持しつつ処理負荷を軽減できます。
4. Paper・Spigotサーバーの最適化
4.1 Paper サーバーの利点
Paperサーバーは、バニラサーバーと比較して大幅なパフォーマンス向上を実現できます。2025年7月現在、最も推奨されるサーバーソフトウェアです。
4.2 paper-global.ymlの最適化設定
timings:
enabled: true
verbose: true
url: https://timings.aikar.co/
server-name-privacy: false
hidden-config-entries:
– database
– settings.bungeecord-addresses
– settings.velocity-support.secret
history-interval: 300
history-length: 3600
server-name: “Your Server Name”messages:
kick:
authentication-servers-down: “Authentication servers are down. Please try again later, sorry!”
connection-throttle: “Connection throttled! Please wait before reconnecting.”
flying-player: “Flying is not enabled on this server”
flying-vehicle: “Flying is not enabled on this server”
misc:
max-joins-per-tick: 3
region-file-cache-size: 256
use-alternative-luck-formula: false
load-permissions-yml-before-plugins: true
chunk-loading:
min-load-radius: 2
max-concurrent-sends: 2
autoconfig-send-distance: true
target-player-chunk-send-rate: 100.0
global-max-chunk-send-rate: -1.0
enable-frustum-priority: false
global-max-chunk-load-rate: -1.0
player-max-concurrent-loads: 20.0
global-max-concurrent-loads: 500.0
4.3 paper-world-defaults.ymlの最適化
entities:
armor-stands:
do-collision-entity-lookups: true
tick: true
behavior:
baby-zombie-movement-modifier: 0.5
disable-chest-cat-detection: false
disable-player-crits: false
door-breaking-difficulty:
husk:
– HARD
zombie:
– HARD
zombie_villager:
– HARD
zombified_piglin:
– HARD
experience-merge-max-value: -1
mobs-can-always-pick-up-loot:
skeletons: false
zombies: false
nerf-pigmen-from-nether-portals: false
piglins-guard-chests: true
should-remove-dragon: false
spawner-nerfed-mobs-should-jump: false
zombie-villager-infection-chance: -1.0
zombies-target-turtle-eggs: true
spawning:
all-chunks-are-slime-chunks: false
alt-item-despawn-rate:
enabled: false
items:
cobblestone: 300
count-all-mobs-for-spawning: false
creative-arrow-despawn-rate: -1
despawn-ranges:
ambient:
hard: 128
soft: 32
axolotls:
hard: 128
soft: 32
creature:
hard: 128
soft: 32
misc:
hard: 128
soft: 32
monster:
hard: 128
soft: 32
underground_water_creature:
hard: 128
soft: 32
water_ambient:
hard: 64
soft: 32
water_creature:
hard: 128
soft: 32
disable-mob-spawner-spawn-egg-transformation: false
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
filter-nbt-data-from-spawn-eggs-and-related: true
iron-golems-can-spawn-in-air: false
monster-spawn-max-light-level: -1
non-player-arrow-despawn-rate: -1
per-player-mob-spawns: true
scan-for-legacy-ender-dragon: true
skeleton-horse-thunder-spawn-chance: 0.01
slime-spawn-height:
slime-chunk:
maximum: 40.0
surface-biome:
maximum: 70.0
minimum: 50.0
wandering-trader:
spawn-chance-failure-increment: 25
spawn-chance-max: 75
spawn-chance-min: 25
spawn-day-length: 24000
spawn-minute-length: 1200
wateranimal-spawn-height:
maximum: 0.0
minimum: 0.0
5. プラグインによる最適化
5.1 パフォーマンス向上プラグイン
2025年7月現在、最も効果的なパフォーマンス向上プラグインをご紹介します。
必須レベルのプラグイン
プラグイン名 | 機能 | 期待効果 | 推奨度 |
---|---|---|---|
ClearLag | 不要エンティティの削除 | TPS向上10-30% | ★★★★★ |
EntityTrackerFixer | エンティティ追跡の最適化 | メモリ使用量削減 | ★★★★★ |
ChunkHoppers | ホッパー処理の最適化 | 工業サーバーで有効 | ★★★★☆ |
FastAsyncWorldEdit | 大規模建築時の最適化 | 建築サーバーで必須 | ★★★★☆ |
LagGoggles | ラグ原因の特定 | 問題解決支援 | ★★★★★ |
5.2 ClearLagの詳細設定
settings:
auto-update: true
enable-api: true
config-version: 16clear-lag:
enabled: true
default-time: 300
broadcast-message: true
broadcast-warning: true
warning-delay: 30
# 削除対象エンティティ
entities:
– DROPPED_ITEM
– EXPERIENCE_ORB
– PAINTING
– PROJECTILE
– ITEM_FRAME
– SMALL_FIREBALL
– FIREBALL
– ENDER_PEARL
– ENDER_SIGNAL
– PRIMED_TNT
– FALLING_BLOCK
– MINECART_CHEST
– MINECART_HOPPER
– MINECART_TNT
– BOAT
# 除外エンティティ
skip-entity-names:
– “MySpecialItem”
– “ImportantNPC”
# 除外エンティティタイプ
skip-entity-types:
– ITEM_FRAME
– PAINTING
– LEASH_HITCH
– ARMOR_STAND
– PLAYER
– VILLAGER
– WOLF
– CAT
– HORSE
– DONKEY
– MULE
– LLAMA
modules:
redstone-cullling:
enabled: true
delay: 2000
range: 6
mob-ai:
enabled: true
max-distance: 15
chunk-unload:
enabled: true
delay: 3000
hopper-limiter:
enabled: true
hopper-check: 1
item-merger:
enabled: true
radius: 6
max-lifespan: 240
mob-range:
enabled: true
zombie: 20
skeleton: 20
creeper: 16
spider: 16
enderman: 16
slime: 15
ghast: 50
pig_zombie: 25
endermite: 16
silverfish: 16
bat: 16
witch: 16
horse: 16
squid: 16
villager: 16
blaze: 16
cave_spider: 16
giant: 16
magma_cube: 16
mushroom_cow: 16
ocelot: 16
pig: 16
sheep: 16
wither: 16
wolf: 16
chicken: 16
cow: 16
iron_golem: 16
snowman: 16
boat: 16
minecart: 16
minecart_chest: 16
minecart_command: 16
minecart_furnace: 16
minecart_hopper: 16
minecart_mob_spawner: 16
minecart_tnt: 16
ender_crystal: 16
experience_orb: 16
leash_hitch: 16
firework: 16
weather: 16
lightning: 16
wither_skull: 16
unknown: 16
limits:
mobs: 1000
animals: 300
monsters: 300
items: 200
arrows: 200
vehicle: 300
6. ハードウェアとネットワーク最適化
6.1 推奨ハードウェア構成
2025年7月現在、マイクラサーバーに適したハードウェア構成をご紹介します。
CPU(プロセッサー)
プレイヤー数 | 推奨CPU | コア数 | クロック数 | 備考 |
---|---|---|---|---|
1-10人 | Intel Core i3 / AMD Ryzen 3 | 4コア | 3.0GHz以上 | シングルコア性能重視 |
11-25人 | Intel Core i5 / AMD Ryzen 5 | 6コア | 3.2GHz以上 | バランス型 |
26-50人 | Intel Core i7 / AMD Ryzen 7 | 8コア | 3.4GHz以上 | マルチコア対応 |
51人以上 | Intel Core i9 / AMD Ryzen 9 | 12コア以上 | 3.6GHz以上 | 高負荷対応 |
ストレージ(SSD)
マイクラサーバーでは、チャンクの読み込み・保存が頻繁に発生するため、高速なストレージが必要です。
ストレージタイプ | 読み込み速度 | 書き込み速度 | 推奨用途 |
---|---|---|---|
NVMe SSD | 3,000MB/s以上 | 2,000MB/s以上 | 大規模サーバー |
SATA SSD | 500MB/s以上 | 400MB/s以上 | 中規模サーバー |
HDD | 100MB/s程度 | 80MB/s程度 | バックアップ用 |
6.2 ネットワーク最適化
ネットワーク設定もサーバーパフォーマンスに大きく影響します。
Linux系OSのネットワーク設定
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = bbr
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_slow_start_after_idle = 0
設定を適用するために、以下のコマンドを実行してください。
7. 監視とトラブルシューティング
7.1 パフォーマンス監視ツール
サーバーの状態を常に監視することで、問題の早期発見と対処が可能になります。
Spark(パフォーマンス分析)
/spark profiler start
# 数分間サーバーを運用
/spark profiler stop
/spark profiler open
Timings(Paper/Spigot)
/timings on
# 10分程度サーバーを運用
/timings paste
7.2 よくある問題と対処法
問題1: TPS低下(15.0以下)
原因の特定方法:
- Sparkプラグインで処理時間の長いタスクを特定
- ClearLagでエンティティ数を確認
- メモリ使用量を確認
対処法:
- 不要なエンティティの削除
- レッドストーン回路の最適化
- プラグインの見直し
- view-distanceの削減
問題2: メモリ不足
症状:
- OutOfMemoryError
- 頻繁なガベージコレクション
- チャンクの読み込み遅延
対処法:
- メモリ割り当ての増加
- GC設定の見直し
- メモリリークの調査
- プラグインの最適化
問題3: ネットワーク遅延
確認方法:
ping -c 10 サーバーIP# ネットワーク統計の確認
netstat -i
対処法:
- ネットワーク設定の最適化
- CDNの使用検討
- サーバー地理的位置の見直し
- 帯域幅の確認
8. 2025年7月最新のVPSサービス比較
8.1 マイクラサーバー向け推奨VPS
実際の運用経験をもとに、2025年7月現在の最新料金とスペックで比較したVPSサービスをご紹介します。
サービス名 | 2GBプラン | 4GBプラン | 8GBプラン | 特徴 |
---|---|---|---|---|
XServer VPS for Game | 830円/月 | 1,700円/月 | 3,400円/月 | 自動構築機能 |
ConoHa for GAME | 641円/月 | 1,292円/月 | 2,408円/月 | 時間課金対応 |
ConoHa VPS | 968円/月 | 1,958円/月 | 3,960円/月 | 汎用性重視 |
さくらのVPS | 1,594円/月 | 3,520円/月 | 7,040円/月 | 老舗の安定性 |
KAGOYA CLOUD VPS | 979円/月 | 2,200円/月 | 4,400円/月 | 日額課金 |
8.2 用途別おすすめVPS
初心者向け:XServer VPS for Game
自動構築機能により、複雑な設定なしでマイクラサーバーを立ち上げることができます。24時間365日のサポートも充実しており、初めてサーバーを運用する方に最適です。
コスパ重視:ConoHa for GAME
業界最安値クラスの料金設定で、時間課金により無駄な費用を削減できます。豊富なテンプレートとゲーム特化機能が魅力です。
本格運用:ConoHa VPS
高い自由度とカスタマイズ性により、本格的なサーバー運用が可能です。高性能CPU・SSDを搭載し、充実した管理画面を提供します。
安定性重視:さくらのVPS
20年以上の運営実績により培われた信頼性と安定性が魅力です。国内データセンターと手厚いサポートにより、長期運用に適しています。
柔軟課金:KAGOYA CLOUD VPS
日額20円から利用可能で、必要な時だけサーバーを起動できます。スペック変更も容易で、豊富なプラン選択肢があります。
9. 定期メンテナンスとバックアップ
9.1 定期メンテナンス計画
サーバーの安定運用には、定期的なメンテナンスが欠かせません。以下のスケジュールを参考にしてください。
日次メンテナンス
- TPS値の確認
- メモリ使用量の確認
- ログファイルの確認
- プレイヤー数の記録
週次メンテナンス
- サーバー再起動
- プラグインの更新確認
- パフォーマンスレポートの生成
- 不要ファイルの削除
月次メンテナンス
- セキュリティアップデート
- OS・Java更新
- バックアップの整理
- サーバー設定の見直し
9.2 自動バックアップ設定
# backup.sh – 自動バックアップスクリプトSERVER_DIR=”/opt/minecraft”
BACKUP_DIR=”/opt/minecraft/backups”
WORLD_NAME=”world”
DATE=$(date +%Y%m%d_%H%M%S)
# サーバーコンソールに保存コマンドを送信
screen -S minecraft -p 0 -X stuff “save-all$(printf \\r)”
screen -S minecraft -p 0 -X stuff “save-off$(printf \\r)”
# 5秒待機
sleep 5
# ワールドデータを圧縮
tar -czf “$BACKUP_DIR/${WORLD_NAME}_${DATE}.tar.gz” -C “$SERVER_DIR” “$WORLD_NAME”
# 保存を再開
screen -S minecraft -p 0 -X stuff “save-on$(printf \\r)”
# 7日以上古いバックアップを削除
find “$BACKUP_DIR” -name “*.tar.gz” -mtime +7 -delete
echo “バックアップ完了: ${WORLD_NAME}_${DATE}.tar.gz”
cronで定期実行する場合:
# 毎日午前3時にバックアップ
0 3 * * * /opt/minecraft/backup.sh# 6時間おきにバックアップ
0 */6 * * * /opt/minecraft/backup.sh
10. 実践的な運用Tips
10.1 サーバー起動時の最適化
# start.sh – 最適化されたサーバー起動スクリプト# Java実行可能ファイルのパス
JAVA_PATH=”/usr/bin/java”
# メモリ設定(サーバーのRAMに応じて調整)
MIN_RAM=”8G”
MAX_RAM=”8G”
# JVMパラメータ(2025年7月最新版)
JVM_OPTS=”-Xms$MIN_RAM -Xmx$MAX_RAM”
JVM_OPTS=”$JVM_OPTS -XX:+UseG1GC”
JVM_OPTS=”$JVM_OPTS -XX:+ParallelRefProcEnabled”
JVM_OPTS=”$JVM_OPTS -XX:MaxGCPauseMillis=200″
JVM_OPTS=”$JVM_OPTS -XX:+UnlockExperimentalVMOptions”
JVM_OPTS=”$JVM_OPTS -XX:+DisableExplicitGC”
JVM_OPTS=”$JVM_OPTS -XX:+AlwaysPreTouch”
JVM_OPTS=”$JVM_OPTS -XX:G1NewSizePercent=30″
JVM_OPTS=”$JVM_OPTS -XX:G1MaxNewSizePercent=40″
JVM_OPTS=”$JVM_OPTS -XX:G1HeapRegionSize=8M”
JVM_OPTS=”$JVM_OPTS -XX:G1ReservePercent=20″
JVM_OPTS=”$JVM_OPTS -XX:G1HeapWastePercent=5″
JVM_OPTS=”$JVM_OPTS -XX:G1MixedGCCountTarget=4″
JVM_OPTS=”$JVM_OPTS -XX:InitiatingHeapOccupancyPercent=15″
JVM_OPTS=”$JVM_OPTS -XX:G1MixedGCLiveThresholdPercent=90″
JVM_OPTS=”$JVM_OPTS -XX:G1RSetUpdatingPauseTimePercent=5″
JVM_OPTS=”$JVM_OPTS -XX:SurvivorRatio=32″
JVM_OPTS=”$JVM_OPTS -XX:+PerfDisableSharedMem”
JVM_OPTS=”$JVM_OPTS -XX:MaxTenuringThreshold=1″
JVM_OPTS=”$JVM_OPTS -Dfile.encoding=UTF-8″
JVM_OPTS=”$JVM_OPTS -Duser.country=US”
JVM_OPTS=”$JVM_OPTS -Duser.language=en”
# サーバーJARファイル
SERVER_JAR=”paper-1.21.1-latest.jar”
# 起動コマンド
echo “サーバーを起動中…”
$JAVA_PATH $JVM_OPTS -jar $SERVER_JAR nogui
10.2 プレイヤー数に応じた動的設定
# dynamic_settings.sh – プレイヤー数に応じた設定調整# 現在のプレイヤー数を取得
PLAYER_COUNT=$(screen -S minecraft -p 0 -X stuff “list$(printf \\r)” | grep -o ‘[0-9]*’ | head -1)
# プレイヤー数に応じて設定を調整
if [ “$PLAYER_COUNT” -le 5 ]; then
# 少人数時の設定
screen -S minecraft -p 0 -X stuff “gamerule randomTickSpeed 3$(printf \\r)”
VIEW_DISTANCE=12
elif [ “$PLAYER_COUNT” -le 15 ]; then
# 中人数時の設定
screen -S minecraft -p 0 -X stuff “gamerule randomTickSpeed 2$(printf \\r)”
VIEW_DISTANCE=10
else
# 多人数時の設定
screen -S minecraft -p 0 -X stuff “gamerule randomTickSpeed 1$(printf \\r)”
VIEW_DISTANCE=8
fi
# Paper設定ファイルの更新
sed -i “s/view-distance: [0-9]*/view-distance: $VIEW_DISTANCE/” paper-global.yml
echo “プレイヤー数: $PLAYER_COUNT に応じて設定を調整しました”
10.3 負荷テストの実行
新しい設定を適用した際は、負荷テストを実行してパフォーマンスを確認することが重要です。
# load_test.sh – 負荷テストスクリプトecho “負荷テストを開始します…”
# 開始時のTPS記録
screen -S minecraft -p 0 -X stuff “tps$(printf \\r)”
# 大量のエンティティを生成
for i in {1..100}; do
screen -S minecraft -p 0 -X stuff “summon minecraft:pig ~ ~ ~$(printf \\r)”
sleep 0.1
done
# 5分間待機
sleep 300
# 終了時のTPS記録
screen -S minecraft -p 0 -X stuff “tps$(printf \\r)”
# エンティティを削除
screen -S minecraft -p 0 -X stuff “kill @e[type=pig]$(printf \\r)”
echo “負荷テストが完了しました”
まとめ
マイクラサーバーのパフォーマンス最適化は、適切な知識と継続的な監視により大幅な改善が可能です。2025年7月現在の最新情報をもとに、以下のポイントを押さえて運用してください。
重要な最適化ポイント
- メモリ設定の最適化:プレイヤー数とMODに応じた適切なメモリ割り当て
- Paper サーバーの採用:バニラサーバーから大幅なパフォーマンス向上
- プラグインによる最適化:ClearLagやEntityTrackerFixerの活用
- 定期的な監視:SparkやTimingsによる継続的な監視
- 適切なハードウェア選択:CPUのシングルコア性能とSSDの重要性
運用における注意点
- 設定変更後は必ず動作確認を行う
- 定期的なバックアップを忘れずに実施
- プレイヤー数の変化に応じて設定を調整
- 新しいプラグインやMODは慎重に導入
- セキュリティアップデートは定期的に実施
注意事項:サーバー設定を変更する際は、必ず事前にバックアップを取得してください。また、プロダクション環境での変更前には、テスト環境で十分な検証を行うことを強く推奨します。
継続的な最適化により、プレイヤーが快適に楽しめるマイクラサーバーを構築・運用することができます。本記事の内容が、皆様のサーバー運用に役立つことを願っています。
※本記事は2025年7月時点の情報に基づいて執筆されています。内容の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。
※VPSサービスの料金やスペックは変更される場合があります。契約前には各サービスの公式サイトで最新情報をご確認ください。