「レイテンシ」とは?意味と計測方法を解説!改善方法は?

レイテンシとは何か、正確に意味がわかっているでしょうか?レイテンシは、処理系で発生する所要時間のことですが、この言葉が指す意味は、文脈によって多少異なります。この問題は、発生個所が広範囲にわたります。レイテンシが増加しているときは、待たされているときです。これはサービスの利用に支障があるので、改善方法を身に着けたいと考えているのではないでしょうか。本記事では、レイテンシの基礎的な意味を最初に紹介し、その後、具体的な問題の紹介と、それに対応する対処法を紹介する、というように段々とステップアップします。本記事を読んで頂けば、レイテンシについて、はっきりと意味を理解できるようになります。その結果、記事によって用法が異なっても、迷うことがなくなります。さらに、問題が発生してレイテンシが増大しているとき、適切な対処方法を考えるための基礎知識を獲得することができます。

レイテンシ(latency)とは

レイテンシ(latency)とは、リクエストの宛先となるサーバーやネットワーク装置などで消費される時間のことです。レイテンシが短いほど、高速に処理ができることを表しています。リクエストした側のマシンは待機する時間が長くなり、その間次の処理に移行できません。リクエストに対してどの程度の早さで応答できているか、という応答性能について評価する際に使われます。

宛先の例

例えば、ストレージ・プロセッサ・PCの拡張ボードなどのデバイスでもいいですし、それよりも大きくなると、HTTPリクエストに答えるWebサーバー・データベースでもいいです。さらに大規模な処理系としては、リモートストレージを提供するデータセンターや、クラウド化されたサーバー群などでも該当します。

レスポンスタイムとの違い

レスポンスタイムとの違いについても理解を助けるため、触れておきます。レスポンスタイムとは、日本語にすると応答時間のことで、リクエストを出してから応答=レスポンスが返されるまでの所要時間のことです。意味は一緒です。

レイテンシ(latency)の意味

レイテンシ(latency)とは、英語の直訳としては「潜在・潜伏」という意味です。転じて、リクエストを出してから応答が返されるまでに、宛先処理系で消費された時間を指す言葉になっています。

レイテンシの単位はms(ミリ・セコンド)

レイテンシの単位はms(ミリ・セコンド)です。1000分の1秒単位を表しています。

現在の情報化社会では、先述のように、ネットワーク上でより大規模な処理系が運用されているので、実測値は秒単位の値になることもあります。

レイテンシの目安

レイテンシの目安は、宛先処理系の文脈に依存して異なります。簡単に言えば、サービスにどの程度の快適さを求めるかによって異なりますし、それが経済的観点で現実的かにもよります。

ネットワーク装置

ネットワーク装置は、ネットワーク上に多数存在します。ネットワークは本来は透過的な存在で、処理時間を消費しないのが望ましいです。ですから、多数の信号をハードウェアで処理するようになっています。そのため、装置レベルのレイテンシは0.003ms程度です。

Webサーバー

Webサーバーのレイテンシは、同時接続可能なユーザー数によって異なります。例えば、1000人の接続を許可するのであれば、1人あたり10ms以内には応答しないとストレスを感じますので、これを基準として考えるとよいです。

データベース

データベースのサーバーに対するレイテンシは、1ms程度が理想です。

レイテンシ以外のネットワーク性能

レイテンシ以外のネットワーク性能には、以下のものがあります。

スループット

スループットは、ネットワークに送出したデータがどの程度の速度で通過できているかを表す値で、単位はbpsです。

スループットは以下でも解説しています。

パケットロス

パケットロスは、ネットワークに送出したパケットが、経路中でどの程度失われるかの割合を表す値で、単位はパーセントです。

パケットロスは以下でも解説しています。

ジッター

ジッターは、ネットワークに送出した一群のパケットの送出間隔が、どの程度ずれているか、ということを示す値です。単位は秒です。

ジッターは以下でも解説しています。

レイテンシとping値の違い

レイテンシとping値の違いを説明します。ping値は、「送信時点から受信完了までの所要時間」を指します。つまり、処理をリクエストする信号を出した時点から、その処理が終わり、応答がを受信するまでの時間になります。レイテンシは、狭義には、このうちリクエストを受け取って処理している間の時間のみを指します。ですが、わかりにくいことに、文脈によっては、レイテンシをping値と同じ意味で使っている場合もあります。これは、レイテンシで何を測りたいかに依存して意味が変わるためです。

ping値は以下でも解説しています。

レイテンシが高い(大きい)ことの影響

レイテンシが高い(大きい)ことの影響について解説します。レイテンシが大きいということは、宛先処理系での処理時間が増大しているということになります。例えば、以下のような状況が考えられます。

・ハードウェアデバイス
ハードウェアデバイスのレイテンシの増加が発生すると、そのデバイスを利用する全ての処理に対してレイテンシが増加することになります。フレームレートの低下や、音声にノイズが入るなどです。発熱による低速化がよくある例です。

・ネットワーク装置
ネットワーク装置のレイテンシ増加が発生していると、そこを経由する全ての通信のレイテンシが増加します。ここでのレイテンシは、パケット受信から送出までの時間が長くなるので、バッファが蓄積しやすく、パケットロス率・ジッターが増加します。

・Webサーバー
Webサーバーのレイテンシ増加は、ユーザーPCからのリクエストに答えるのが遅くなっている状態です。Webページの閲覧が遅くなったり、通信断が発生しやすくなります。オンラインショップでは商品の販売が円滑に進まなくなったり、オンライン予約システムでは、予約がうまくいかなくなります。Webサーバーはオンラインの経済活動の窓口になっていることが多いので、こうした経済的な機会損失について所有者が責任を問われる場合があります。

・データベースのレイテンシ増加
データベースのレイテンシ増加は、Webサーバーのときと同じ状況を発生させます。データベースが個人や企業の基幹部分で単独で利用されている場合は、外部への影響は小さいので問題が無いのですが、Webサーバーのバックエンドとして利用されている場合は、外部への影響が大きく問題になりやすいです。

オーディオ インターフェイスはレイテンシを比較

オーディオインターフェイスはレイテンシを比較するのが大事です。ここでのレイテンシとは、IN端子に音声信号を入力してから、スピーカー出力されるまでの遅れを指します。

「低レイテンシ」が重要

「低レイテンシ」が重要です。レイテンシが大きい製品では、演奏の再現性が悪く、扱いにくいからです。また、その場合、チップの処理性能が低いことが多いので、音質を上げるために高いサンプリングレートにしたときも、処理が追いつかずレイテンシが発生しやすくなります。

どのぐらいが低レイテンシ?

どのぐらいが低レイテンシか補足として説明しておきます。一般的な音声データのサンプリング周波数は44.1KHzです。これはどういう意味かというと、1秒間の音声データを、44100回の電圧信号に分割した形でデータを扱っている、という意味です。すると、1回の電圧信号に許される時間の長さは、約20msとなります。これが低レイテンシの目安です。

どんな機器でも低レイテンシが良い?

音質が良いデータ程高密度にサンプリングされているので、1つの信号あたりの時間幅はより短くなります。ですから、原則としてどんな機器でも低レイテンシが良いです。ただし、電子機器が高速に動作するということは、それだけ発熱・電磁放射ノイズが増えるので、その品質も良い製品を選びましょう。

レイテンシが生じる原因と対処法

レイテンシが生じる原因と対処法を挙げます。

1.ハードウェアの負荷データ量増大

ハードウェアの負荷データ量増大が原因である場合は、処理しきれない要求を受けている状態ですので、有効な対処法は、負荷を押さえることです。例えば、グラフィックカードのレイテンシを押さえるには、解像度を小さくしたり、質感の描画設定をオフにする、などが考えられます。

2.ネットワーク装置のトラフィック量増大

ネットワーク装置のトラフィック量増大が原因である場合は、ネットワーク装置の設定見直し・性能強化が必要です。キャッシュテーブルの生存期間が長すぎると、不要なデータをいつまでも手放すことができず、検索時間が増大します。キャッシュテーブルは適切な時間でリース(解放)するように設定しましょう。リンクアグリゲーションなどの高速化技術を適用することや、負荷分散専用装置を導入することも有効です。

3.Webサーバーへの同時リクエスト増加

Webサーバーへの同時リクエストが増加している場合、Webサーバーが先着順に処理していくため、後に接続したユーザーほど体感するレイテンシが増加することになります。この場合は、サーバーの処理性能を向上する必要があります。例えば、サーバー内の処理装置の性能強化、自営ネットワーク部分の回線性能強化をすると、改善できます。

4.データベースの負荷データ量増大

データベースの負荷データ量増大が原因である場合は、データベースの設定・構造・呼び出しプログラムを見直す必要があります。一般に効果的なのは、良く参照するデータにインデックスを付けることです。頻繁に使う定型的な検索結果は、キャッシュするように設定しておくことも、高速化に大きく貢献します。また、リクエストをデータベースに投入するプログラムが、一度に複雑なデータ検索を多数要求しすぎることでも、負荷が増大します。この場合は、プログラムのパフォーマンスを改善することが必要になります。

レイテンシのおすすめ計測サイト

レイテンシのおすすめ計測サイトを以下に紹介します。

Speedcheck

URL:https://www.speedcheck.org/ja/

応答時間・下り回線速度・上り回線速度の3つの項目があります。このうち、応答時間がレイテンシです。ここでは、ネットワークパケット送出した時点から、パケットを受信した時点までが、レイテンシになっています。

USEN GATE 02

URL:https://speedtest.gate02.ne.jp/

下り回線速度・上り回線速度・ジッター・pingが測定できます。速度測定だけでなく、「用途別回線スピード判定結果」として、わかりやすい目安が表示されているところがポイントです。ここでは、レイテンシはpingとして表示されています。

Speedtest

URL:https://www.speedtest.net/result/11335117102

下り回線速度・上り回線速度・pingが測定できます。グラフ・メーターのアニメーションで視覚的に楽しい速度測定があります。レイテンシはpingとして表示されています。

まとめ

レイテンシは、どの部分をリクエストを処理している宛先処理系と考えるかで、対象となる範囲が異なります。情報化が進んで、事業者網が高速大容量化したことで、ストレージのクラウド化など、宛先処理系も範囲が拡大しましたので、レイテンシの意味もそれにともなって拡大されました。そのため、記事によって宛先処理系の範囲が異なり、理解しにくくなっています。ですが、一度全体像を理解できれば、レイテンシの意味は難しくありません。本記事ではレイテンシの基本的な意味を解説し、改善する方法を紹介しました。ぜひ本記事を参考に、自分でレイテンシの改善をしてみてください。