1ミリ秒(ms)で何ができるか考えたことがありますか?ハエは3ミリ秒、ミツバチは5ミリ秒で羽ばたきます。一方、人間は目をまばたきするのに300ミリ秒かかります。ミリ秒は1秒の1000分の1なので、とても微少なことのように思えます。しかし、わずかなミリ秒であっても、クラウド通信のパフォーマンスには大きな影響を与えます。
以前の ブログ記事 では、クラウドのアーキテクチャを開発する際には、地理的条件を考慮する必要があると説明しました。この主な理由は、ネットワークのレイテンシー(待機時間)とそれがクラウドのワイド・エリア・ネットワーク (WAN) のパフォーマンスが悪影響を及ぼすことでした。その記事では、理由を説明せずに、レイテンシーの問題の解決策について説明しました。理由を学ぶことができれば、WANパフォーマンスのエキスパートに一歩近づくことでしょう。
私は3年以上にわたり、テラデータのお客様がVantageシステムをクラウドに移行するのお手伝いをしてきましたが、WANのパフォーマンスは常に大きな懸念事項でした。私は電気工学の学位を持ち、1980年代にはWANネットワーク機器を設計していましたが、クラウドのWANパフォーマンスの問題を診断することにはいつも違和感を覚えていました。私の通常の対応は、専属のネットワークの専門家に助けを求めることでした。確かに私のネットワーク技術は未熟でしたが、インターネットでいくら調べても必要な全体像は見えてきませんでした。ネットワークの専門家と1年にわたって対話をした後、私はようやく、このつかみどころのない問題のシンプルさを理解することができました。ここでの私の目標は、その洞察をもとに、クラウドのWAN通信を使いこなせるようになるシンプルな説明をすることです。
この説明は、アプリケーションが信頼性の高いデータ伝送を必要とすることから始まります。信頼性の高い伝送は、図 1に示されたように、データパケットの受信確認 (Ack) を使用するネットワーク・プロトコルによって実現されます (図 1 参照)。送信側は、データパケットを送信した後、送信が成功したことを示す受信側のAckを待ちます。送信側は、受信側のAckを待ち、その総往復時間の間、アイドル状態になります。ほとんどのWANのようにネットワークのレーテンシーが大きい場合、単一のデータストリームのネットワークパフォーマンスを低下させるのはこのアイドル時間です。
図 1 データパケット受信確認による信頼性の高いデータ転送
WANのパフォーマンスを理解する上で重要なのは、アプリケーションデータの転送には、ネットワーク層とアプリケーション層の2セットのAcksがあることを理解することです。ネットワーク層は主にTCP/IPで、これはもちろんインターネットを実行するプロトコルです。WAN最適化に関するインターネット上の研究では、ほとんどがネットワーク層とTCP/IP について述べています。これらのサイトによると、TCP/IPには、不完全ではあっても、WANのレーテンシーの問題を中和するウィンドウ機能が組み込まれていることが紹介されており、このウィンドウ機能のおかげで、ネットワーク層が最適化されていると仮定し、この論理では、Acksを無視することができます。
2番目のAcksは、アプリケーション層で発生します。ここでは、ODBCやJDBCなどのプロトコルや、TCP/IP上で実行されるネイティブデータベースプロトコルのようなプロトコルについて説明します。インターネットで調べてみても、これらのAcksやWAN 通信への影響に関する情報はあまり見つかりませんでした。結論から言うと、これらのプロトコルはウィンドウ技術を持たないため、WANのレイテンシー問題に非常に影響を受けやすくなっています。
ここでは、私が最終的にWANパフォーマンス像を表現した、いくつかの例を図で見てみましょう。ローカル・エリア・ネットワーク (LAN) の場合、待ち時間は通常 1 ミリ秒以下です。したがって、データAcksの待ち時間は、データの送信にかかる時間に比べて短く、ネットワーク上のアイドル時間はほとんどありません (図 2参照)。そのため、単一のデータストリームの場合、LAN スループットはネットワーク帯域幅に近い値になります。
図 2: 1ミリ秒のレイテンシーでの大きなファイル転送
図 3: 35 ミリ秒のレイテンシーを持つ大規模なファイル転送
しかし、レイテンシーが 35ミリ秒に増加した場合はどうなるでしょうか。図3を見ると、アイドル時間が大幅に増加し、その結果、この単一のデータストリームのネットワークスループットが急減しています。多くの人は、帯域幅を増やせばこの問題を解決できると考えていますが、そうではありません。帯域幅を増やしても、レイテンシーの問題を解決することはできません。WAN上のアイドル時間を埋めるための主な方法は、並列データストリームを追加で実行することです。図3のような複数のストリームがあれば、アイドル時間を埋められることは容易に想像できます。
そのため、クラウドのWANレイテンシーが非常に速い場合でも、パフォーマンスの問題が発生する可能性があります。したがって、大量のデータをWAN経由で移動する場合には、並列データストリームをサポートするアプリケーションを使用することが重要です。Vantageは、並列データストリームを使用してデータを移動するいくつかの方法をサポートしており、Vantageはクラウドコンピューティングに最適です。