Skip to content
ホスティング · パフォーマンス

ガベージコレクタと一時停止

通常のTPSでもサーバーが数秒フリーズする理由:ガベージコレクションの仕組み、ログでの確認方法、実際に効果のある対策を解説します。

更新日 2026年8月13日

Javaはポーズ中にメモリを解放します。アプリケーションが停止し、ガベージコレクターがガベージを削除してから、処理が再開されます。ポーズが長引くと、サーバー全体がフリーズしたように見えます。

症状

  • 平均TPSは正常ですが、数分に一度、すべてが1~5秒間フリーズします。
  • Paperのログに Can't keep up! Did the system time change, or is the server overloaded? が記録される — 分析。
  • spark health でGCに費やされた時間の割合を確認できます。

影響する要因

要因影響
ヒープサイズヒープが大きいほどポーズが長くなる
ガベージの生成速度ループ内でオブジェクトを生成するプラグインやMOD
コレクターデフォルトはG1。ZGCは大きなヒープでも短いポーズになる
コア数並列コレクションの方が高速

対処方法

  1. メモリを「余裕を持って」割り当てないでください。 8GBで十分なところに32GBを割り当てると、ポーズが長くなります。目安はピーク時の使用量に30~50%を加えた値です — 必要なメモリ量。
  2. ガベージの発生源を特定します。 spark heapsummary でヒープを埋めているものを確認できます。多くの場合、特定のプラグインやMODが原因です。
  3. フラグ。 Millidaでは調整済みのG1がすでに設定されています。インターネット上の手動設定は、むしろ害になることが多いです — Aikarのフラグ。

やってはいけないこと

「ガベージコレクターを無効化する」ことは試さないでください。そのようなオプションは存在しません。プランのメモリ量を超える -Xmx を設定しないでください。制限を超えようとするとプロセスが強制終了されます — OutOfMemoryError。

Minecraftホスティングオフラインでもサーバーが稼働サーバーを作成