Minecraft: Timingsレポートでサーバー問題を特定しよう
解説
Timingsレポートって何?
Timingsレポートは、パソコンのタスクマネージャーに似ていて、特にラグが発生している時に問題を見つけるのに役立つツールです。サーバーの全ての動作を記録し、それを視覚的に表示してくれます。
Timingsレポート
Timingsレポートの作成方法
サーバーソフトによってTimingsレポートの作成方法は異なります。基本的には、まず以下のコマンドで記録を開始します(Paper Spigotの場合は設定を変更していなければ不要です)。
/timings start
記録中は普段通りサーバーを使い、問題が発生している状況をしっかり記録しましょう。記録時間は最低10分以上が理想です。
Timingsレポートのエクスポート
Timingsレポートを作成・エクスポートするには、以下のコマンドを使います。
/timings paste
数秒後にエクスポート成功のメッセージが表示されます。リンクをクリックするとTimingsレポートが開けます。
分析
↔️ 値の絞り込み
Timingsレポートをエクスポートして開くと、こんな感じの画面が表示されます。
まずはグラフをよく見て、マウスを各ポイントに合わせて大まかな値をチェックしましょう。
問題のある期間を特定するために、下のスライダーで範囲を絞り込むのがポイントです。グラフのように調整してみてください。
サーバーの値を調査する
合計で3つのカラムがあります。下のスクショのように、1番目のボックスはメインプロセスが1ティック(20ティック=1秒)のうち何%使っているかを示しています。記録中に何回実行されたかもわかります。
2番目のボックスはミリ秒単位のより正確な値ですが、50msを超えないのが理想です。超えると連鎖的に処理が遅れ、サーバーが処理を遅延させるためラグの原因になります。
Full Server Tickは通常無視してOKです。値が赤くなりがちですが、大きな問題ではありません。
色付きでハイライトされた値は特に詳しく調べましょう。
この例では、すでにオレンジ色になっている「全エンティティ(動物、モンスター、アイテムなど)」の処理を見ています。これだけでサーバーにエンティティが多すぎる問題があると推測できます。
サーバーにモブファームがあるか、大量のモブがスポーンしている可能性があります。エンティティが多すぎる問題があれば、設定でスポーン率を下げたり、エンティティ数を制限・自動削除するプラグインを導入すると良いでしょう。
上記のリストは基本的にメインプロセスを表示しています。プロセスをクリックすると、各エンティティタイプの個別処理を詳しく調べられます。2番目と3番目のカラムも忘れずにチェックしてください。
「Minecraft::tickEntity - nms.EntitySkeleton」が多くの処理を実行しているのがわかります。やはりモブファームが原因かもしれません。
もう一つオレンジ色の処理は「待機中のブロック」です。待機中のブロックは非効率で、サーバーは毎ティックごとに状態をチェックしなければなりません。例えば、空中に浮く砂や砂利、溶岩や水などが該当します。
大規模な農場で大量の水を使うと問題が起きやすいです。また、新しいチャンクが生成されて山の中に水源ができると、サーバーは水の流れをスムーズにするために毎回状態を計算し直します。さらにチャンクの生成・読み込みも負荷が高い処理です。
他の調査も同じ手順で行えます。もし評価に困ったら、いつでもサポートに相談してくださいね!
プラグインのチェック
プラグインが原因で問題が起きている場合もあります。原因を特定するには、一時的にプラグインを外してサーバーの状態を再チェックしてみましょう。
プラグインの問題は「Plugins」セクションでも調査可能です。ここも3つのカラムで構成されており、通常のサーバー値と同じ形式です。ただしメインプロセスはなく、プラグイン名が表示されます。クリックすると各処理の詳細を確認できます。