レイテンシという単語を、webサービス・アプリケーションやゲームのデータ伝送で耳にする機会があるかもしれません。webサービスを快適に使用するのに「低レイテンシがよい」というのは有名です。
本記事では、「レイテンシー(latency)」を解説していきます。
レイテンシの基礎的な意味を最初に紹介し、その後、高い・低い(大きい・小さい)の意味、遅延の計測・目安・原因や改善方法まで紹介していきます。
データの往復時間を意味するレイテンシーは帯域幅やレスポンスタイムやping値と混乱しがち。
本記事で情報の概要を読んで頂けば、レイテンシについて、はっきりと意味を理解できるようになります。さらに、問題が発生しても、適切な対処方法を考えるための基礎知識を獲得することができます。
通信速度の「レイテンシ(latency)」とは
レイテンシ(latency)とは、「転送の要求からデータが送られるまでの遅延時間」のことです。
ユーザーのアクションから応答までの経過時間であり「通信の遅延」を表すデータ転送の機能の指標のひとつです。
webサイトやゲームアプリケーションのようなリアルタイムの応答が求められるコンテンツで、データ転送の遅延はユーザーの不満につながりやすいです。ブログコンテンツの使用やファイルダウンロードにかかる時間にも影響します。海外など物理的に距離がある遠隔地のサーバーへの指示をするとき発生するとき、数千分の1秒の遅れでも指示の回数が増えるほどサービスが使いづらくなるのです。レイテンシーが増大するとリクエストした側のマシンは待機する時間が長くなり、その間次の処理に移行できません。
システム個々の処理性能が高くても仕組みでシステムを構成・構築する個々のデータ転送が遅いと全体の処理能力は遅くなる要因になります。
身近なところでは以下の場面で影響します。
・zoomのテレビ会議
・オンラインゲーム
・リアルタイムの動画配信サービス
・FXの自動売買
遅延時間が長い → レイテンシ大きい(高い)
レイテンシーは0に近いほど低レイテンシーであり、サービスが使いやすい、ゲームやライブ配信では時差が少ない、システムは高速に処理ができることを表しています。
レイテンシ・レイテンシー(latency)の意味
レイテンシ(latency)とは、英語の直訳としては「潜在・潜伏」という意味です。転じて、リクエストを出してから応答が返されるまでに、データ転送で消費された時間を指す言葉になっています。
レイテンシの単位はms(ミリ・セコンド)
レイテンシの単位はms(ミリ・セコンド、ミリ秒)です。1000分の1秒単位を表しています。往復にかかった時間を表しているので「ミリ秒」で表現されます。現在の情報化社会では、先述のように、ネットワーク上でより大規模な処理系が運用されているので、実測値は秒単位の値になることもあります。
レイテンシと「レスポンスタイム」や「ping値」の違いは?
レイテンシーのように「データの往復にかかる時間」を表すネットワーク用語にレスポンスタイムやping値があります。違いをご紹介します。
「レスポンスタイム」との違い
レスポンスタイムとの違いについても理解を助けるため、触れておきます。レスポンスタイムとは、日本語にすると応答時間のことで、リクエストを出してから応答=レスポンスが返されるまでの所要時間のことです。意味は一緒です。レイテンシと意味は同じですが、「遅れ」を意味するレイテンシは0に近いことを目指すものでニュアンスが含まれているようで用語を使う状況が違うように感じます。
レスポンスタイムは以下でも解説しています。
「ping値」の違い
レイテンシとping値もほぼ同じ意味です。
後述しますが、レイテンシは「ping」を使って測定できます。pingはネットワークの開通を確認するコマンドです。「ping値」はpingの往復にかかる時間=アクションしてから応答が返ってくる時間になるので「レイテンシ」と考えることができます。レイテンシはデータ転送ぜんたいに使える指標で、ping値は特にオンラインゲームなどで使用されるように感じます。レイテンシの改善=ping値の改善になります。
ping値は以下でも解説しています。
レイテンシと一緒に使われるネットワーク用語
レイテンシと一緒に用いられる用語に以下があります。
スループット
スループットは、ネットワークに送出したデータがどの程度の速度で通過できているかを表す値で、単位はbpsです。
スループットは以下でも解説しています。
パケットロス
パケットロスは、ネットワークに送出したパケットが、経路中でどの程度失われるかの割合を表す値で、単位はパーセントです。
パケットロスは以下でも解説しています。
ジッター
ジッターは、ネットワークに送出した一群のパケットの送出間隔が、どの程度ずれているか、ということを示す値です。単位は秒です。
ジッターは以下でも解説しています。
レイテンシの目安
レイテンシの目安は何ミリ秒が最適、何ミリ秒以上が高い・大きいのでしょうか?宛先処理系の文脈に依存して異なります。簡単に言えば、サービスにどの程度の快適さを求めるかによって異なりますし、それが経済的観点で現実的かにもよります。
ネットワーク装置
ネットワーク装置は、ネットワーク上に多数存在します。ネットワークは本来は透過的な存在で、処理時間を消費しないのが望ましいです。ですから、多数の信号をハードウェアで処理するようになっています。そのため、装置レベルのレイテンシは0.003ms程度です。
Webサーバー
Webサーバーのレイテンシは、同時接続可能なユーザー数によって異なります。例えば、1000人の接続を許可するのであれば、1人あたり10ms以内には応答しないとストレスを感じますので、これを基準として考えるとよいです。
データベース
データベースのサーバーに対するレイテンシは、1ms程度が理想です。
レイテンシのおすすめ計測サイト&見方
レイテンシのおすすめ無料の計測サイトの使い方・見方を以下に紹介します。
Speedcheck
URL:https://www.speedcheck.org/ja/
応答時間・下り回線速度・上り回線速度の3つの項目があります。このうち、応答時間がレイテンシです。ここでは、ネットワークパケット送出した時点から、パケットを受信した時点までが、レイテンシになっています。
Speedcheckは以下でも解説しています。
USEN GATE 02
URL:https://speedtest.gate02.ne.jp/
下り回線速度・上り回線速度・ジッター・pingが測定できます。速度測定だけでなく、「用途別回線スピード判定結果」として、わかりやすい目安が表示されているところがポイントです。ここでは、レイテンシはpingとして表示されています。
Speedtest
URL:https://www.speedtest.net/result/11335117102
下り回線速度・上り回線速度・pingが測定できます。グラフ・メーターのアニメーションで視覚的に楽しい速度測定があります。レイテンシはpingとして表示されています。
Speedtestは以下でも解説しています。
レイテンシの原因と改善
レイテンシは環境や条件の要素で変化します。改善したい場合はレイテンシが生じる原因の特定と最適な対処法の実行が必要です。
1.ハードウェアの負荷データ量増大
ハードウェアの負荷データ量増大が原因である場合は、処理しきれない要求を受けている状態ですので、有効な対処法は、負荷を押さえることです。例えば、グラフィックカードのレイテンシを押さえるには、解像度を小さくしたり、質感の描画設定をオフにする、などが考えられます。
2.ネットワーク装置のトラフィック量増大
ネットワーク装置のトラフィック量増大が原因である場合は、ネットワーク装置の設定見直し・性能強化が必要です。キャッシュテーブルの生存期間が長すぎると、不要なデータをいつまでも手放すことができず、検索時間が増大します。キャッシュテーブルは適切な時間でリース(解放)するように設定しましょう。リンクアグリゲーションなどの高速化技術を適用することや、負荷分散専用装置を導入することも有効です。
3.Webサーバーへの同時リクエスト増加
Webサーバーへの同時リクエストが増加している場合、Webサーバーが先着順に処理していくため、後に接続したユーザーほど体感するレイテンシが増加することになります。この場合は、サーバーの処理性能を向上する必要があります。例えば、サーバー内の処理装置の性能強化、自営ネットワーク部分の回線性能強化をすると、改善できます。
4.データベースの負荷データ量増大
データベースの負荷データ量増大が原因である場合は、データベースの設定・構造・呼び出しプログラムを見直す必要があります。一般に効果的なのは、良く参照するデータにインデックスを付けることです。頻繁に使う定型的な検索結果は、キャッシュするように設定しておくことも、高速化に大きく貢献します。また、リクエストをデータベースに投入するプログラムが、一度に複雑なデータ検索を多数要求しすぎることでも、負荷が増大します。この場合は、プログラムのパフォーマンスを改善することが必要になります。
具体的には
・ルーター・モデムの再起動
・Wi-Fiを有線にする
・ipv6にする
・LANケーブルを新規格にする
・新しいルーター・モデムに変える
・インターネットプロバイダを変更
・サーバーを高速なレンタルサーバーへ
・5gにする
・CDNを使う
・webサイトのHTML・CSS・JSを圧縮
・Wordpressの画像の遅延読み込み
といった方法があります。
レイテンシが高い(大きい)ことの影響
レイテンシが高い(大きい)ことの影響について解説します。レイテンシが大きいということは、宛先処理系での処理時間が増大しているということになります。例えば、以下のような状況が考えられます。
・ハードウェアデバイス
ハードウェアデバイスのレイテンシの増加が発生すると、そのデバイスを利用する全ての処理に対してレイテンシが増加することになります。フレームレートの低下や、音声にノイズが入るなどです。発熱による低速化がよくある例です。
・ネットワーク装置
ネットワーク装置のレイテンシ増加が発生していると、そこを経由する全ての通信のレイテンシが増加します。ここでのレイテンシは、パケット受信から送出までの時間が長くなるので、バッファが蓄積しやすく、パケットロス率・ジッターが増加します。
・Webサーバー
Webサーバーのレイテンシ増加は、ユーザーPCからのリクエストに答えるのが遅くなっている状態です。Webページの閲覧が遅くなったり、通信断が発生しやすくなります。オンラインショップでは商品の販売が円滑に進まなくなったり、オンライン予約システムでは、予約がうまくいかなくなります。Webサーバーはオンラインの経済活動の窓口になっていることが多いので、こうした経済的な機会損失について所有者が責任を問われる場合があります。
・データベースのレイテンシ増加
データベースのレイテンシ増加は、Webサーバーのときと同じ状況を発生させます。データベースが個人や企業の基幹部分で単独で利用されている場合は、外部への影響は小さいので問題が無いのですが、Webサーバーのバックエンドとして利用されている場合は、外部への影響が大きく問題になりやすいです。
オーディオ インターフェイスはレイテンシを比較
オーディオインターフェイスはレイテンシを比較するのが大事です。ここでのレイテンシとは、IN端子に音声信号を入力してから、スピーカー出力されるまでの遅れを指します。
「低レイテンシ」が重要
「低レイテンシ」が重要です。レイテンシが大きい製品では、演奏の再現性が悪く、扱いにくいからです。また、その場合、チップの処理性能が低いことが多いので、音質を上げるために高いサンプリングレートにしたときも、処理が追いつかずレイテンシが発生しやすくなります。
どのぐらいが低レイテンシ?
どのぐらいが低レイテンシか補足として説明しておきます。一般的な音声データのサンプリング周波数は44.1KHzです。これはどういう意味かというと、1秒間の音声データを、44100回の電圧信号に分割した形でデータを扱っている、という意味です。すると、1回の電圧信号に許される時間の長さは、約20msとなります。これが低レイテンシの目安です。
どんな機器でも低レイテンシが良い?
音質が良いデータ程高密度にサンプリングされているので、1つの信号あたりの時間幅はより短くなります。ですから、原則としてどんな機器でも低レイテンシが良いです。ただし、電子機器が高速に動作するということは、それだけ発熱・電磁放射ノイズが増えるので、その品質も良い製品を選びましょう。
まとめ
レイテンシは、どの部分をリクエストを処理している宛先処理系と考えるかで、対象となる範囲が異なります。情報化が進んで、事業者網が高速大容量化したことで、ストレージのクラウド化など、宛先処理系も範囲が拡大しましたので、レイテンシの意味もそれにともなって拡大されました。そのため、記事によって宛先処理系の範囲が異なり、理解しにくくなっています。ですが、一度全体像を理解できれば、レイテンシの意味は難しくありません。本記事ではレイテンシの基本的な意味を解説し、改善する方法を紹介しました。ぜひ本記事を参考に、自分でレイテンシの改善をしてみてください。