通信量から探るマイクラサーバーラグの改善

ping

※2019年当時(Paper 前提)の話です。今のバージョンでは設定の名前や既定値が変わっているかもしれません。

まず、通信量によるラグはログイン時やTP時に起こるのでまずはそれを確認します。

これは既に知っている方が多いかと思いますが、ログイン時などに重いのは大きく分けて次の2つの理由があります。

  • ログイン処理自体が重い(バグなど)
  • ログイン直後のデータ通信量が多い

前者はプラグインのエラーログなどをご確認ください。

今回話すのは後者についてです。

ログイン直後に通信するデータというと、地形データ(デフォルトなら10チャンク分)、他のプレイヤーの動き、音符ブロックなどの音、、、が挙げられます。

これらが多くなればなるほどネットワーク帯域を圧迫し、帯域が細い環境のプレイヤーやサーバーを使っていると地形の読み込みに時間がかかって動けない、カクつく、などの症状が現れます。

ラグといえばping(ネットの応答速度)を考えるのが常識ですが、ログイン直後となれば通信量を疑います。

改善策

そこでまず、改善するために運営者が確認すべきこととして

  1. サーバーのネットワーク環境
  2. そこからの通信速度(特にアップロード速度)
  3. サーバーでログイン時に送信しているモノ

の3つが大きく挙げられます。

1,2は各自でやってください。3について話します。

3については、チャンク送信距離(spigot.ymlまたはserver.propertiesに記載)を主に確認し、できるだけ少なくできるように調整してください。(小さくしすぎると遠くの景色が見えなくなるため、性能と相談して最適な距離を見つけてください。)

すでに小さい場合や距離を可能な限り伸ばしたい場合は「Best View Distance」という最高のプラグインがありますので、そちらを参照してみてください。(前提としてspigotのフォーク版、paper-spigotを使う必要があります。)

データ容量圧縮

また、単なるデータ通信量削減として、標準搭載の圧縮機能を使うこともできます。

server.propertiesに「network-compression-threshold」という項目があり、これはその値以上の容量を圧縮するという意味で、その値を下げることで通信量を削減できる可能性があります。

例えばデフォルトの256なら小さいデータは圧縮をせず、チャンクなどの大きいデータは圧縮するというようになります。

\-1で圧縮の無効化です。値を減らすと圧縮するものが増えCPUへの負荷が増えます。海外サイトでは512を推している人が多いです。-1は著しく性能が落ちるそうです。これも様子を見ながら調整していくのがいいでしょう。

ちなみにBungeeCordを利用している場合は、マイクラサーバー側を-1にし、BungeeCord側を256や512にするのが最善なようです。

ブログのトップへ