冒頭の直接回答
Aikarフラグは、マインクラフト(Java版)サーバーのJVM(Java仮想マシン)設定を最適化するための起動オプション集で、主にG1GC(Garbage-First GC)を前提に「GC停止(ポーズ)」によるTPS低下・ラグスパイクを抑えることを目的とします。特にPaperは公式ドキュメントでAikarフラグ(およびStart Script Generator)の利用を案内しています。2026年1月時点では、Minecraft Java Edition 1.21.11(Mounts of Mayhem)を含む現行運用でJava 21(64-bit)が前提となるケースが一般的で、-Xms と -Xmx を同値に揃えたうえで、まずはPaper公式の推奨スクリプトを出発点に、/spark や /timings で計測しながら調整するのが安全です。
要点
- AikarフラグはG1GC前提で、GCポーズを抑えてTPSの安定化を狙う設定群
-Xmsと-Xmxを同じ値に設定し、ヒープサイズの伸縮による揺れを減らす- Paper公式はAikarフラグ(およびStart Script Generator)を案内しており、十分なメモリ確保を推奨(ただしOS分の余裕も必要)
- Minecraft 1.20.5以降(1.21.11含む)では、サーバー運用もJava 21(64-bit)が前提
- 適用後は
/sparkや/timings、GCログでボトルネックを確認して調整する

Aikarフラグとは?マイクラサーバー最適化の基礎
Aikarフラグの概要と開発背景
Aikarフラグは、マインクラフト(Java版)サーバー界隈で広く参照されているJVM最適化設定です。Empire Minecraft運営者のAikar氏が公開したフラグ群を出発点に、現在はPaper公式ドキュメントでも「Aikar’s flags」および「Start Script Generator」として案内されています。
マインクラフトサーバーは、短命オブジェクト(座標・一時データ等)が大量に生成されやすく、JVMのデフォルト設定のままだと、負荷状況によってはGC(ガベージコレクション)の停止が目立ってTPSが揺れ、プレイヤーがラグとして体感することがあります。
Aikarフラグは、G1GCの挙動(新世代領域の扱い、リージョンや予約領域、Mixed GCの目標など)をマイクラ向けに調整し、短い停止を積み重ねて長い停止を避ける方向に寄せることで、体感ラグの原因になりやすいスパイクを抑えることを狙います。
従来設定との違いとパフォーマンス向上
従来は -Xms を小さくして必要に応じてヒープを拡張する運用も多かったですが、マイクラサーバーのように負荷変動が大きい環境では、ヒープ伸縮やGCタイミングの揺れが「引っかかり」として出やすくなります。Aikarフラグでは -Xms と -Xmx を同値にし、ヒープサイズを固定してGCを安定させる方針を取ります。
ただし、Aikarフラグは「入れれば必ず速くなる」万能薬ではありません。TPS低下の原因がCPU(シングルスレッド性能)・ディスクI/O・重いプラグイン・過剰なエンティティ/チャンク負荷などにある場合、GCの改善だけでは体感が変わらないこともあります。まずは計測し、ボトルネックを切り分けたうえで適用するのが安全です。
PaperMC公式ドキュメントでは、Aikarフラグ(およびStart Script Generator)を案内しつつ、十分なメモリを割り当てること、そしてOSや他プロセスのための余裕を残すこと(サーバー環境により目安は異なる)を注意点として挙げています。
2025年最新版Aikarフラグの設定方法
Java 21対応の基本設定
(見出しは原文に合わせて残していますが、内容は2026年1月時点の運用実態に合わせて更新しています。)Minecraft Java Edition 1.20.5以降の運用では、サーバー側もJava 21(64-bit)が前提となります。Paperなど主要サーバーソフトも、該当バージョンではJava 21を前提に案内されることが多いです。
以下は、Paper公式ドキュメント(Aikar’s flags)で案内される系統の「Java 21 + G1GC」前提の起動例です(-Xms/-Xmx はサーバーに合わせて調整してください)。
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 paper.jar --nogui
この設定の -Xms10G -Xmx10G 部分は、サーバーの物理メモリに応じて変更する必要があります。以下のメモリ別推奨設定はあくまで目安で、ワールド規模・同時接続・プラグイン構成・view/simulation distanceによって大きく変動します。
メモリ別推奨設定表
| サーバーメモリ | 推奨Xms/Xmx | 想定プレイヤー数 | 用途 |
|---|---|---|---|
| 8GB | 6G | 1-5人 | 小規模・友人サーバー |
| 16GB | 10-12G | 6-20人 | 中規模コミュニティ |
| 32GB | 16-20G | 21-50人 | 大規模サーバー |
| 64GB | 24-32G | 51-100人 | 企業レベル |
| 128GB以上 | 32G以上 | 100人以上 | 商用サーバー |
重要な注意点:サーバーの全メモリをマインクラフトに割り当てないでください。OSや監視/バックアップ等のプロセスのために余裕を残す必要があります(目安は環境差があるため、Paper公式ドキュメントの注意点も併読推奨)。
起動スクリプトの作成と実行
Linux/Mac用起動スクリプト(start.sh)
#!/bin/bash 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 paper.jar --nogui
実行権限を付与して起動します。
chmod +x start.sh ./start.sh
Windows用起動スクリプト(start.bat)
@echo off 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 paper.jar --nogui pause
ダブルクリックで実行できます。
各フラグの詳細解説と技術的背景
メモリ管理に関するフラグ
-Xms / -Xmx(ヒープサイズ設定)
最小ヒープサイズ(-Xms)と最大ヒープサイズ(-Xmx)を同じ値に設定することが、Aikarフラグの重要ポイントです。ヒープの自動拡張/縮小による揺れを減らし、GCの挙動を安定させる狙いがあります。
一方で「割り当てれば割り当てるほど良い」とは限りません。ヒープを過剰に大きくすると、GCの作業量が増えたり、メモリ帯域/CPUキャッシュ効率の面で不利になる場合もあります。サーバーの用途・同時接続・ワールド規模に応じて、計測しながら適正値を探すのが安全です。
-XX:G1HeapRegionSize=8M
G1GCはヒープを「リージョン」に分割して管理します。リージョンサイズやヒープの状況によっては、巨大(Humongous)扱いの割り当てが増えると回収が難しくなることがあるため、Aikarフラグでは明示的な指定が例示されています。実際の最適値はヒープサイズ等にも左右されるため、まずはPaper公式の推奨例を出発点にしてください。
ガベージコレクション最適化フラグ
-XX:G1NewSizePercent=30 / -XX:G1MaxNewSizePercent=40
新世代(Young Generation)の割合を調整し、短命オブジェクトを新世代で効率よく回収することを狙います。マイクラは短命オブジェクトが多くなりやすいため、新世代の設計が合わないとGCが頻発してTPSが乱れやすくなります。
-XX:MaxGCPauseMillis=200
GCポーズ目標を設定します。低くしすぎると回収が追いつかず別のGCが重くなる場合があり、高くしすぎると体感の引っかかりが出やすくなります。Paper公式の推奨値を基準に、GCログやsparkの計測を見ながら調整するのが安全です。
-XX:MaxTenuringThreshold=1
オブジェクトがOld世代へ昇格するまでの閾値を調整します。マイクラの負荷特性(短命が多い)を踏まえた設定例として提示されることがありますが、プラグイン/Mod構成によって挙動が変わるため、適用後はGCログやsparkで悪化していないか確認してください。
-XX:SurvivorRatio=32
サバイバー領域とEden領域の比率を調整します。上記のTenuring系設定と合わせてバランスを取る意図ですが、こちらも環境差が大きい項目です。
パフォーマンス向上フラグ
-XX:+AlwaysPreTouch
起動時にメモリページを事前に確保・初期化し、実行中のページフォルト由来の揺れを抑える目的で使われます。大きなヒープを割り当てる場合、起動が遅くなることがあります。
-XX:+DisableExplicitGC
プラグイン等が明示的にGCを呼び出すことで、意図しない大きな停止が起きるケースを避ける狙いがあります。ただし、すべての環境で常に正解とは限らないため、導入後はログ・計測で影響を確認してください。
-XX:+PerfDisableSharedMem
JVMのパフォーマンスデータ共有メモリに関する挙動を変更します。環境によってはI/Oや権限周りの影響を避ける目的で使われます。
GCログの有効化とパフォーマンス監視
GCログ設定(Java 11以降)
Aikarフラグを適用した後、GCの動作を監視することが重要です。以下のフラグを追加することで、GCログを有効化できます。
Java 11以降
-Xlog:gc*:logs/gc.log:time,uptime:filecount=5,filesize=1M
この設定により、logs/gc.log にGCログが記録されます。ログ出力は通常軽微ですが、環境や出力量によっては影響がゼロではないため、必要に応じてログレベルを調整してください。
Sparkプラグインによるプロファイリング
GCログに加えて、Sparkを使用することで、リアルタイムのパフォーマンス分析が可能です。
Sparkプラグインのインストール
- SpigotMC公式ページ(または公式ドキュメント)から入手
plugins/フォルダに配置- サーバーを再起動
基本的な使い方(例)
/spark profiler start # プロファイリング開始 /spark profiler stop # プロファイリング停止とレポート生成 /spark gc # GC統計の表示 /spark heapdump # ヒープダンプの作成
Sparkは、CPUプロファイリング、メモリ分析、GC監視などを統合した解析ツールです。生成されたレポートは共有でき、他の管理者やコミュニティに相談する際に便利です(詳細はSpark公式ドキュメントも参照してください)。
PaperMCとの組み合わせで最大のパフォーマンスを実現
PaperMCの導入とAikarフラグの相乗効果
PaperMC(Paper)は、Spigot互換のサーバーソフトウェアで、パフォーマンス改善や運用向け機能が充実しています。AikarフラグはJVM側の最適化、Paperはサーバー実装側の最適化という位置づけのため、併用することでGC由来のスパイクを抑えつつ運用しやすい構成にできます。
PaperMCの導入手順
- PaperMC公式サイトから対象バージョンのPaperをダウンロード(例:Minecraft 1.21.11)
paper.jarをサーバーフォルダに配置- 上記のAikarフラグ起動スクリプトで
-jar paper.jarを指定 - 初回起動でEULA同意と設定ファイル生成
- Paperの設定(
config/paper-global.yml/config/paper-world-defaults.ymlなど)で必要に応じて調整
paper-world-defaults.ymlの推奨設定
# 注意:項目名/階層はPaperのバージョンで変わることがあります。 # 最新の設定キーはPaper公式ドキュメント(Configuration)で確認してください。 chunks: auto-save-interval: 6000 # 自動セーブ間隔(tick) max-auto-save-chunks-per-tick: 6 # 1tickあたりの最大保存チャンク数 hopper: cooldown-when-full: true # フルホッパーのクールダウン disable-move-event: false # 移動イベント(互換性重視ならfalse) unsupported-settings: fix-invulnerable-end-crystal-exploit: true
これらの設定は、チャンクの自動保存やホッパー処理など、負荷が出やすいポイントを調整する例です。最適化は「変更→ピーク時間に計測→戻せるように記録」を徹底し、効果が出たものだけ残すのが安全です。
トラブルシューティングとよくある問題
メモリ不足エラーの解決
Aikarフラグ適用後、以下のエラーが出る場合があります。
java.lang.OutOfMemoryError: Java heap space
原因と対処法
- 割り当てメモリが不足している:
-Xms/-Xmxの値を増やす(ただしOS分の余裕は残す) - メモリリーク/過剰消費の可能性:Sparkで
/spark heapdump等を使い、消費しているプラグインや処理を特定 - チャンク・距離設定が重すぎる:
view-distance/simulation-distanceを下げて効果を計測
Old世代GCが頻繁に発生する場合
Sparkで /spark gc を実行し、Old世代のGC傾向を確認します。頻度が高く、かつTPSの乱れが見える場合は、以下のように段階的に調整します。
- G1MixedGCLiveThresholdPercent を下げる:Mixed GCで回収対象を増やす(例:90→85)
- G1ReservePercent を下げる:予約領域を減らす(例:20→15)
- メモリを増やす/負荷源を減らす:根本は負荷源(プラグイン、距離、エンティティ、I/O)を潰すこと
起動スクリプトが動作しない場合
Linux/Mac
# Java 21がインストールされているか確認 java -version # 実行権限があるか確認 ls -l start.sh # 権限付与 chmod +x start.sh
Windows
# Java 21がインストールされているか確認 java -version # パスにスペースがある場合は引用符で囲む "C:\Program Files\Java\jdk-21\bin\java.exe" -Xms10G ...
マインクラフトサーバーを快適に動かすためのVPS選び
Aikarフラグを最大限活用するには、十分なメモリと高性能なCPUを持つサーバー環境が不可欠です。自分に合ったサーバーを見つけるには、レンタルサーバー比較診断サイトを利用すると、予算やプレイ人数に応じた最適なVPSを簡単に見つけられます。
ConoHa for GAME(コノハ for GAME)
ConoHa for GAMEは、マインクラフト専用のテンプレートが用意されているゲーム特化型VPSサービスです。初期費用無料で月額1,065円から利用でき、最短25秒でマイクラサーバーが立ち上がります。
管理画面から起動設定を編集でき、初心者でも最適化されたサーバーを構築しやすいのが特徴です。自動バックアップ機能付きで、Javaバージョンの切り替えも可能です。高性能なCPUとSSDを搭載しており、複数人が同時接続しても快適に動作しやすい構成です。
XServer VPS for Game(エックスサーバー VPS for Game)
XServer VPS for Gameは、国内最大級のホスティング企業が提供するゲーム専用サーバーです。月額830円から利用可能で、マインクラフトサーバーの構築が管理画面から数クリックで完了します。
NVMe SSDを搭載しているため、チャンクのロードや保存が高速で、JVM最適化と組み合わせることで快適なプレイ環境を狙えます。無料お試し期間の有無や内容は時期により変わるため、最新は公式を確認してください。
KAGOYA CLOUD VPS(カゴヤ CLOUD VPS)
KAGOYA CLOUD VPSは、老舗企業のVPSサービスです。日額課金など柔軟な料金体系を選べるプランもあり、短期間のイベント用サーバーとしても活用できます。
柔軟なスペック変更が可能で、最初は小さめのプランで試し、プレイヤー増加に合わせて上位プランへ移行する、といった使い方ができます。国内データセンターで低遅延を狙いやすい点も特徴です。
さくら VPS(Sakura VPS)
さくら VPSは、長年の運用実績がある国内VPSサービスです。低価格帯から選べ、安定運用を重視する場合の候補になります。
スタートアップスクリプト等を利用して自動構築できるケースもあり、コストを抑えながら運用したい方に適しています。管理画面や提供機能はプランにより異なるため、最新は公式を確認してください。
関連動画:Aikarフラグ設定解説
AikarフラグやPaper運用、JVMメモリ設定を視覚的に理解したい方には、以下の日本語の動画が参考になります(動画は環境やバージョン差があるため、最終的には公式ドキュメントも併読推奨)。
最新版マイクラサーバーの建て方(複数方式まとめ)
低スペックPCでマイクラサーバーを建てる(負荷・設定の考え方)
メモリ割り当て(JVM引数)の基本(考え方の整理)
いずれも「まず動かす→計測→原因特定→必要な最適化だけ残す」という流れを意識すると、Aikarフラグの適用判断や調整がスムーズになります。
よくある質問(FAQ)
Q1. Aikarフラグはどのサーバーソフトウェアで使えますか?
Java版マインクラフトのJavaプロセスとして起動するサーバーであれば、基本的にJVM引数として付与できます。代表例はPaper、Spigot、Purpur、Pufferfishなどです。統合版(Bedrock Edition)サーバーにはJVMが存在しないため、Aikarフラグは使用できません。
Q2. 8GBのサーバーメモリでも効果はありますか?
効果を感じるケースはありますが、8GB環境ではOS分の余裕を確保しつつ、-Xms/-Xmx を大きめに確保する必要があり、構成次第で余裕が少なくなりがちです。小規模(少人数・軽い構成)なら動作することも多い一方、プラグインが増える・距離設定が重い・同時接続が増えると不足しやすいので、状況に応じて上位プラン(16GB以上)への移行も検討してください。
Q3. Aikarフラグを設定したのにラグが減りません。原因は何ですか?
Aikarフラグは主にGC由来の揺れを抑えるため、原因が別にある場合は改善が限定的です。よくある原因は、CPUボトルネック(シングルスレッド性能)、ディスクI/O遅延、重いプラグイン、過剰なエンティティ/タイルエンティティ、距離設定(view/simulation)、ネットワーク遅延などです。Sparkで /spark profiler start を実行し、何がボトルネックかを特定してください。
Q4. Java 8やJava 17でもAikarフラグは使えますか?
Aikarフラグ自体は古いJavaでも一部使えますが、2026年1月時点の現行運用(例:Minecraft 1.20.5以降、1.21.11など)ではJava 21(64-bit)が前提です。該当バージョンを動かす目的なら、Java 21へ移行してください。古いJavaでは、フラグが無効化されたり、推奨構成と挙動が一致しない可能性があります。
Q5. Aikarフラグを適用したら逆にラグが増えました。どうすればいいですか?
まずは割り当てメモリ量が適切か(OS分の余裕を残しているか)を確認してください。次に、GCログやSparkで「GCが増えたのか」「別の処理が重いのか」を切り分けます。G1GCの調整値(例:MaxGCPauseMillis や Mixed GC 系)を変える前に、距離設定・エンティティ・重いプラグイン・I/Oを優先して疑うのが安全です。どうしてもGC由来なら、まずはPaper公式のStart Script Generatorで生成した推奨値に戻し、そこから差分を最小化して調整してください。
まとめ
Aikarフラグは、マインクラフト(Java版)サーバーのGC由来のラグスパイクを抑えるための代表的なJVM最適化手法です。-Xms と -Xmx を同値に揃え、G1GC前提の推奨設定を出発点にすることで、TPSの安定化を狙えます。2026年1月時点の現行運用(Minecraft 1.20.5以降、1.21.11など)ではJava 21(64-bit)が前提となるため、Javaバージョン要件も含めて整えたうえで適用してください。
設定後は、Sparkや/timings、GCログで定期的に監視し、環境に合わせて微調整することが重要です。十分なメモリと高性能CPUを備えたVPSを選び、レンタルサーバー比較診断サイトで最適なサーバーを見つけて、快適なマイクラサーバー運営を始めましょう。

