Minecraftサーバーのラグと低TPSの診断

Minecraftの仕組み(遅延の原因は何ですか?)

遅延の原因を理解するための鍵は、Minecraftの仕組みを理解することです。Minecraftサーバーソフトウェアはすべて同じような問題で動作しますが、メインのゲームループにはマルチスレッドやタイミングの制限がありません。サーバーがticになると、TileEntityの更新、エンティティの更新、ブロックの更新、イベント、その他のプロセスがすべて完了するまで実行されます。これはすべて1つのスレッドで発生し、次のループは現在のスレッドが終了するまで開始できません。世界は更新されず、プレイヤーは動いていないように見え、エンティティはその場で凍結されます。理想的には、各ティックは20ティック/秒(TPS)を維持するために50ミリ秒以内で実行する必要があります。これは、最小限の問題で18 TPSで55.55ミリ秒まで低下する可能性があります。これより低いと、ラグが発生し始めます。

遅れの典型的な原因

遅延を引き起こす可能性のあるものはたくさんありますが、それらのいくつかは、ほとんどのサーバーで最も可能性の高い原因です。

  • ファイルの使用:プレーヤーのファイルから絶えず読み取るプラグイン、特に移動、損傷、相互作用などのイベントで。いくつかの例は、PVPフラグまたはプレーヤーファイルから継続的に読み取るGlowプラグインです。
  • データベースとしてのフラットファイル:大きなファイルを使用して、そのファイルまたはメモリ内での格納方法に応じて、大量のデータを繰り返し追跡するためのプラグインがある場合、長い時間がかかります。多くのプラグインはこれを行い、データベースが肥大化したときに処理時間がサーバーのチックにどのように影響するかについての予防策を講じていません。これは、大きなMagicSpells構成をロードするとき、またはPEXやGroupManagerなどの適切なデータベースの代わりにYAMLを使用するアクセス許可システムを使用するときに、多く見られます。
  • 操作が多すぎる:プラグインが生成するエン���ィティが多すぎる場合、または動きなどのイベントで複雑なタスクを実行しようとすると、遅延が発生し始めます。1回の実行にかかる時間が1ミリ秒未満であっても、イベントを1秒間に20k回処理すると、指数関数的になります。これを引き起こす可能性のあるプラグインは、VoxelSniperやWorldEditなどの世界編集プラグインです。または、アンチチートやワールドプロテクションなどの保護プラグイン。
  • ロードされたチャンクが多すぎます:1つのチャンクです16*16*256。これは多くのようには聞こえないかもしれませんが、乗算すると、チャンクごとに65,536ブロックがあることを意味します。各プレーヤーは、構成に応じて、200を超えるチャンクをロードすることができます。13,107,200ブロック以上です。これは多くのメモリを消費します。また、そのうちの1%もTileEntitiesである場合、131,072のTileEntitiesが読み込まれ、すべてのティックを更新する必要があります。ModはTileEntitiesの処理時間が遅いことで有名です。
  • カスケードWorldGen:これは、プラグインまたはmodが、指定されたチャンクの外部に構造を生成する場合です。これにより、次のチャンクにも構造がオーバーフローし始めた場合、次のチャンクが読み込まれ、生成されて、トリガーされます。これは作成者に代わって悪い設計であり、これを行うプラグインまたはModはすぐに削除する必要があります。
  • タイルエンティティ:以下のLagGogglesセクションをご覧ください。

ほとんどのMinecraftサーバーソフトウェアはプロファイリングツールを含めて構築されているため、ラグの原因を見つけることは、今日では一般的に簡単な手順です。

Spigot / PaperSpigotのタイミングレポート

詳細なタイミングレポートを取得するには、次のコマンドを使用できます。

/timings on

あなたは数分待って、あなたのタイミングが実行している間それを遅らせたいでしょう。しばらくして、レポートを生成します。

/timings paste

これにより、取得したすべてのデータを選別する簡単なオプションを使用して、レポートの詳細な内訳が記載されたWebサイトへのリンクが提供されます。これらの読み方については、Spigotのタイミングwikiで詳しく学ぶことができます

ジャンクデータが次の測定値を詰まらせたくないので、タイミングを後でオフにする必要があり、タイミングによってチックに時間が追加されます。

/timings off

スポンジのタイミングレポート

詳細なタイミングレポートを取得するには、次のコマンドを使用できます。

/sponge timings on

あなたは数分待って、あなたのタイミングが実行している間それを遅らせたいでしょう。しばらくして、レポートを生成します。

/sponge timings report

これにより、取得したすべてのデータを選別する簡単なオプションを使用して、レポートの詳細な内訳が記載されたWebサイトへのリンクが提供されます。スポンジのタイミングシステムはスピゴットに基づいているため、スピゴットのタイミングウィキでこれらの読み取り方法について詳しく学ぶことができます

ジャンクデータが次の測定値を詰まらせたくないので、タイミングを後でオフにする必要があり、タイミングによってチックに時間が追加されます。

/sponge timings off

タイミングをリセットすることもできます。

/sponge timings reset

ラグを減らすための手順

  • スクリプトファイルに適切な引数を使用して、Minecraftを起動します。適切なJava引数について詳しくは、こちらをご覧ください
  • フラットファイルの代わりに適切なデータベースを使用するLuckPermsまたはPermissions Managerを使用する
  • チャンクローダーを完全に回避する
  • カスケードワールドジェネレーションの原因となるものをすべて削除する
  • Anti Cheatプラグインを過度に制限しない
  • プレイヤーの視距離を制限する server.properties
  • 一定期間後に敵対モブをクリアする
  • サーバーを毎日再起動して、Javaからのリークをクリーンアップします
  • サーバーをリロードしないでください。これにより、リークやその他の問題が発生します
  • WorldEditやVoxelSniperなどのプラグインのFastAsyncバージョンを使用する
  • 新しいチャンクが常に作成されないように、世界のサイズを制限します
  • 使用するプラグインの数を制限します。すべてのプラグインが適切に構築されているわけではなく、多くの問題が発生すると、遭遇する問題も多くなります

ラグゴーグル

moddedサーバーのラグの大部分は、タイルエンティティに起因します。これらは、ブロックの機能とイベントの処理に使用されるブロック用に作成されたエンティティです。これらの処理に時間がかかりすぎるか、数が多すぎると、1チックあたりの時間が増加し、サーバーの総TPSが低下する可能性があります。これらの問題を視覚化する方法は、LagGogglesと呼ばれるmodを使用することです。このmodはCurseForceからダウンロードできます。



Leave a Comment

Ubuntu 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

Ubuntu 14 64ビットでのTeamspeak 3サーバーの作成

Ubuntu 14 64ビットでのTeamspeak 3サーバーの作成

概要開発チームとの大規模なコラボレーションプロジェクトで作業しているか、最新のロールプレイングゲームでボスを殺しているかに関係なく、

UbuntuでLeft 4 Dead 2 Serverをセットアップする方法

UbuntuでLeft 4 Dead 2 Serverをセットアップする方法

このチュートリアルでは、UbuntuでLeft 4 Dead 2サーバーをセットアップする方法を学習します。このガイドは、Ubuntuサーバー15.10でテストされています。前提条件の更新th

CentOS 7にJust Cause 2(JC2-MP)サーバーをインストールする方法

CentOS 7にJust Cause 2(JC2-MP)サーバーをインストールする方法

このチュートリアルでは、Just Cause 2マルチプレイヤーサーバーのセットアップ方法をよく学びます。前提条件開始する前に、システムが完全に更新されていることを確認してください

CentOS 7にStarbound Serverをインストールする方法

CentOS 7にStarbound Serverをインストールする方法

別のシステムを使用していますか?このチュートリアルでは、CentOS 7でStarboundサーバーをセットアップする方法を説明します。前提条件このゲームを所有している必要があります。

CentOS 7にPufferPanel(無料のMinecraftコントロールパネル)をインストールする方法

CentOS 7にPufferPanel(無料のMinecraftコントロールパネル)をインストールする方法

はじめにこのチュートリアルでは、Vultr VPSにPufferPanelをインストールしてください。PufferPanelは、オープンソースで自由に使用できるコントロールパネルで、あなたを管理します

Linux上のTShockを備えたTerrariaサーバー

Linux上のTShockを備えたTerrariaサーバー

Terrariaは、採掘、構築、および戦闘に基づいたMMORPGです。Minecraftの2Dバージョンだと言う人もいますが、Terrariaには正義がありません

Ubuntu 14でサーバーを死ぬために7日間セットアップする

Ubuntu 14でサーバーを死ぬために7日間セットアップする

このガイドでは、Ubuntuで独自の7日間toダイサーバー(7D2D)をセットアップする方法を学習します。このゲームはまだ早期アクセスであり、その

UbuntuでPaperSpigotをセットアップする

UbuntuでPaperSpigotをセットアップする

PaperSpigotは、ゲームプレイと力学の不整合を修正することを目的としたSpigotの高性能フォークです。紙には多数のユニークな機能と変更が含まれています

Ubuntu 14.04 x64でのRagnarok Online Serverのセットアップ

Ubuntu 14.04 x64でのRagnarok Online Serverのセットアップ

この記事では、Ubuntu 14.04 x64にRagnarok Online Serverをセットアップします。rootまたはスーパーユーザー権限を持つユーザーとしてログインできます。それ

CentOS 6にUnturned 2.2.5をインストールする方法

CentOS 6にUnturned 2.2.5をインストールする方法

このガイドでは、CentOS 6を実行するVultr VPSにUnturned 2.2.5サーバーをセットアップする方法を学習します。注:これは、Unturnedを編集したバージョンで、

Ubuntu 16.10でTekkit Classicサーバーをセットアップする方法

Ubuntu 16.10でTekkit Classicサーバーをセットアップする方法

別のシステムを使用していますか?Tekkit Classicとは何ですか?Tekkit Classicは、誰もが知っていて愛しているゲーム用のmodpackです。マインクラフト。いくつかのverが含まれています

CentOS 6でMinecraft PEサーバーをセットアップする

CentOS 6でMinecraft PEサーバーをセットアップする

この記事では、CentOS 6でMinecraft Pocket Editionサーバーをセットアップする方法を説明します。MinecraftPEサーバーのセットアップは非常に簡単です。まず、インストール

Teamspeak 3サーバーをUbuntu 16.04 64ビットにインストールする方法

Teamspeak 3サーバーをUbuntu 16.04 64ビットにインストールする方法

別のシステムを使用していますか?概要Discord / Skypeの使用にうんざりしていませんか?サーバーを完全に制御できないことにうんざりしていませんか?あるいは、それが不足しているためか

CentOS 7にARK Survival Evolved(ArkSE)をインストールする方法

CentOS 7にARK Survival Evolved(ArkSE)をインストールする方法

このチュートリアルでは、CentOS 7でARK Survivalサーバーをセットアップする方法をよく学びます。前提条件ARKには大量のメモリが必要です。私はVの使用をお勧めします

Counter-Strikeをインストールする方法:Windows上のグローバル攻撃サーバー

Counter-Strikeをインストールする方法:Windows上のグローバル攻撃サーバー

はじめにこのガイドでは、WindowsにCounter-Strike:Global Offensiveサーバーをインストールする方法を学習します。前提条件始める前に、youl

Ubuntu 16.04にUnturned 2.2.5をインストールする方法

Ubuntu 16.04にUnturned 2.2.5をインストールする方法

別のシステムを使用していますか?はじめにこのガイドでは、Ubuntu 16.04を実行するVultr VPSにUnturned 2.2.5サーバーをセットアップする方法を学習します。注:ティ

WindowsへのReflexサーバーのインストール

WindowsへのReflexサーバーのインストール

はじめにReflexは、Turbo Pixel Studiosによる新進気鋭の競技アリーナFPSです。このチュートリアルでは、独自のReflexサーバーを

Ubuntu 18.04でMinecraftサーバーをセットアップする方法

Ubuntu 18.04でMinecraftサーバーをセットアップする方法

Minecraftは今でも世界で最も人気のあるゲームの1つです。ゲームをプレイする場合、おそらくサーバーで常にプレイしているでしょう。このガイドは、ヨーヨーを教えることを目的としています

LinuxにCounter-Strike 1.6サーバーをインストールする方法

LinuxにCounter-Strike 1.6サーバーをインストールする方法

このガイドでは、LinuxでCounter-Strike:1.6サーバーをセットアップする方法を説明します。ここでの手順は、SteamCMDをサポートするほとんどのLinuxディストリビューションで機能します。最初

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、