フェラーリとトレーラートラック
SMB(中小企業)の世界では、レイテンシーについて話す機会は実際には非常に稀です。SMBの世界はほぼ普遍的にシステムスループットに焦点を当てており、ニーズとしてのレイテンシーについてはほとんど意識していません。しかし、レイテンシーが重要になる場面があり、そうなったときには、スループットとレイテンシーの相互作用と「速度」が私たちにとって何を意味するかを理解することが重要です。エンタープライズ領域に踏み込み始めると、レイテンシーが懸念事項として見られることが多くなりますが、それでもほぼ常にスループットが最重視され、速度の概念はほぼ普遍的にスループットを中心に展開され、レイテンシーの概念は無視されるか忘れられることが多いのです。
システムにおけるレイテンシーの役割を理解することは複雑に見えるかもしれませんが、レイテンシー自体は比較的理解しやすいものです。
レイテンシーとスループットの優れた比較として、私がよく使うのはフェラーリとトレーラートラックのアイデアです。フェラーリは従来の意味での「速い」車であり、高い「時速」を持っています。速さのために設計されていると言えるかもしれません。しかし本当にそうでしょうか?
私たちは一般的にトレーラートラックを遅いものと考えます。それらは大きくて重い機械であり、最高速度が低いです。しかし一度にたくさんの荷物を運びます。
コンピュータの用語では、私たちは通常、速度を運搬能力のように考えます。つまり1秒あたりの「アイテム」数として考えます。フェラーリが時速200マイルで走ることは素晴らしいですが、一度に1箱しか運べません。トレーラートラックは時速100マイルしか走れませんが、一度に1,000箱近く運べます。コンピュータ上のスループットや速度について話すとき、私たちが考えるのはむしろこのようなことです。ネットワークの用語では1秒あたりのギガバイトを考え、個々のパケットの速度はほとんど気にしません。単一のパケットが重要であることはほとんどないからです。計算の用語では、浮動小数点演算数/秒(FLOPS)のような概念を考えます。同様の概念です。単一のFLOP(浮動小数点演算)にどれくらい時間がかかるかは誰も本当に気にしていません。1秒や10秒でどれだけの処理ができるかだけが重要です。
そのため、フェラーリを見たとき、その有用な速度は時速200箱・マイルと言えます。つまり、1時間の運用ごとに、フェラーリは1箱を最大200マイル移動できます。トレーラートラックの有用な速度は時速100,000箱・マイルです。荷物を移動させる観点では、トレーラートラックのスループットはフェラーリの500倍「速い」と容易に言えます。
したがって、コンピュータやネットワークについて通常考える方法では、トレーラートラックが「速く」、フェラーリが「遅い」ということになります。
しかし、レイテンシーも考慮すべきです。ペイロードが非常に小さい場合、例えば手紙や小箱であれば、フェラーリはその1箱を1,000マイル先へたった5時間で移動させることができます! トレーラートラックは同じ道のりに10時間かかるでしょう(しかし多くの手紙を一度に届けられます)。メッセージや小荷物を非常に迅速にある場所から別の場所へ届ける必要がある場合、フェラーリは配達を開始してから最初の荷物が届くまでの遅延(レイテンシー)がトレーラートラックの半分であるため、フェラーリの方が良い選択肢です。
ご想像の通り、ほとんどの場合、トレーラートラックは配送速度がはるかに高いため、圧倒的に実用的です。そして、そのため、私たちは実際に高速道路上で大型トラックを常に見かけます。フェラーリに出会う頻度は非常に低いです(どちらも購入するのに大体同じくらいの費用がかかるにもかかわらず)。しかし特別なケースでは、フェラーリの方が理にかなっています。それほど頻繁ではありませんが。
これは一般的な概念であり、多くの用途に適用できます。キャッシュシステム、メモリ、CPU、ネットワーキング、オペレーティングシステムのカーネルとスケジューラ、自動車などに適用できます。レイテンシーとスループットは一般的に逆の関係にあります。スループットを得るためにレイテンシーを犠牲にします。ほとんどの操作では、これが最善の意味をなします。しかし時にはレイテンシーのためにチューニングする方が意味があることもあります。
ストレージはコンピューティングにおいて実は奇妙な存在であり、ストレージパフォーマンスのほぼすべての焦点はIOPS(入出力オペレーション/秒)に当てられています。IOPSはスループットではなく、「1秒あたりに転送されたデータ」で測定されるレイテンシーのほぼ代理指標です。この2番目の数値を気にすることはほとんどありません。ストレージボトルネックの原因になることはほとんどないからです。しかし、これは例外であって、規則ではありません。
レイテンシーとスループットは、コンピューティングの世界で驚くべき相互作用を示すことがあります。例えばネットワークについて話す場合、私たちは通常スループット(Gb/s)のみを測定しますが、レイテンシー(通常ミリ秒で測定)についてはあまり気にしません。これは通常、ほぼすべてのネットワーキングシステムが同様のレイテンシー数値を持っており、ほとんどのアプリケーションがレイテンシーの遅延にほとんど無関心だからです。国際回線上のVoIPや衛星通信のような稀なアプリケーションだけがレイテンシーが平均的な人に影響を与えるか、あるいは長距離WAN接続上のiSCSIのような珍しいことを試みたときに突然レイテンシーが予期しない問題として浮上して驚かせることがあります。
レイテンシーとスループットの相互作用が衝撃的で興味深くなり始める場所の一つは、電気的または光学的データネットワークから物理的なネットワークに移行するときです。業界での有名な格言があります:
テープを満載したステーションワゴンが高速道路を疾走する帯域幅を決して侮るな。
これは非常に高いレイテンシーを持つ巨大な帯域幅の優れた実例です。街を50マイル横断する単一のステーションワゴンまたはSUVは、10GB/sの光ファイバーが近づけないデータレートを達成して、何百ペタバイトものデータを運ぶことができます。しかし最初のデータパケットが到着するまでの時間は約1時間です。私たちはレイテンシーが500ms以下に抑えられなければならないと仮定して、このような種類のネットワークを無視することがあります。しかしそれが常に当てはまるわけではありません。
オーストラリアでは最近ニュースになりました。SDカードを運ぶ鳩が、ネットワークスループットの観点から、その地域のISPを上回ることができるかどうかをテストしたところ、鳩の方がISPより速いという結果になりました!
コンピューティングパフォーマンスの観点では、私たちはパフォーマンスについて議論する文脈としてレイテンシーを認識さえしないほど無視することがあります。しかし低レイテンシーコンピューティングの世界では、非常に慎重に考慮されます。システムスループットは一般的に大幅に削減されます(従来のシステムがCPU使用率90%前後を目標にするのに対し、システムが10%のCPU使用率のみをターゲットにすることが一般的になります)。リアルタイムカーネル、CPU親和性、プロセッサーピニング、キャッシュヒット率、測定の低下などの概念が、システムから最大限の総処理を引き出そうとするのではなく、最も即時の応答を得ることに焦点を当てるために使用されます。
計算の観点からの低レイテンシーが望まれる一般的な場所は、クリティカルなコントローラーシステム(製造コントローラーなど、1ミリ秒のレイテンシーでさえ工場のフロアで問題を引き起こす可能性がある場合)や、数ミリ秒の遅延で投資価格が変動したり製品がすでに売れて入手できなくなったりする可能性がある金融取引システムです。レイテンシーの観点での速度は、利益を得るか損失を出すかの決定要因となることが多く、たった1ミリ秒でさえ致命的になりえます。
技術的には、オーディオやビデオ処理システムさえもレイテンシーに敏感でなければなりませんが、最新のコンピューティングシステムはスペアの処理オーバーヘッドが非常に多く、レイテンシーは一般的に十分低いため、VoIP PBXや会議システムさえも、処理側のレイテンシーの懸念を意識する必要があることは非常に稀です(ネットワークのレイテンシーでさえ、懸念として徐々に少なくなっています)。一般的なシステム管理者やエンジニアは、レイテンシーに敏感であるか、またはレイテンシー感度を隠せるほどの利用可能なオーバーヘッドがないシステムを扱う必要がなく、キャリアを終えることが容易にできるかもしれません。
速度を定義すること、それがスループットを意味するか、レイテンシーを意味するか、あるいは他の何かまたはそれら2つの組み合わせを意味するかは、ITのすべての側面と人生において非常に重要なことです。異なる状況でそれらが私たちにどのように影響するかを理解し、スループットの改善はレイテンシーのコストを伴い、その逆もまた然りという一般的に間接的な関係で存在する相互作用を理解し、私たちが取り組むシステムを改善するために必要に応じてこれらのバランスを取ることを学ぶことは非常に価値があります。