コンテンツに移動
Google Cloud

GCP のイントラゾーン レイテンシを 40 % 低減する Andromeda 2.1

2017年11月24日
Google Cloud Japan Team

Google Cloud Platform(GCP)全体を支える SDN(Software-Defined Network)スタックの Andromeda は、バージョン 2.1 のリリースに合わせてイントラゾーン ネットワークのレイテンシを大幅に改善しました。Andromeda 2.0 と比べて Compute Engine VM 間のネットワーク レイテンシは 40 % も低減され、2014 年に初めて Andromeda を導入したときと比べると、レイテンシはおよそ 8 分の 1 になっています。

クラウドに移管され、ウェブ ブラウザ経由でアクセスされるアプリケーションが増えてくると、レイテンシは特に重要になってきます。指標としては帯域幅が最も重視されがちですが、アプリケーションのパフォーマンスの決定因子としてはレイテンシのほうが重要な場合が多いのです。

たとえば、HPC アプリケーションや memcache、インメモリ データベースといったワークロードのほか、金融取引、デジタル広告、動画、ゲーム、リテールなどではレイテンシを小さくすることがきわめて重要です。HTTP ベースのマイクロサービスについても、レイテンシが小さくなれば大幅に反応が良くなります。

Andromeda 2.1 におけるレイテンシの改善は主として、Linux の準仮想化デバイス ドライバである virtio の上に構築されたハイパーバイザ バイパスによるものです。Andromeda 2.1 は、パフォーマンスが重視されるパケット単位の処理でハイパーバイザを完全にバイパスし、共有メモリ ネットワーク キューを介して Compute Engine のゲスト VM と Andromeda のソフトウェア スイッチが直接通信できるようにすることで、レイテンシの低減を実現しました。

以前のアプローチでは、ハイパーバイザ スレッドがゲスト VM と Andromeda ソフトウェア スイッチの間のブリッジになっていました。パケットは、VM からハイパーバイザ スレッド、ローカル ホストの Andromeda ソフトウェア スイッチを経由して物理ネットワークに入り、相手先の Andromeda ソフトウェア スイッチからハイパーバイザ、VM に届くようになっていたのです。

しかも、このハイパーバイザ スレッドは、パケットをブリッジングしていないときにはスケジューリングから外れていたため、新しいパケットを処理するときのテイル レイテンシが高くなっていました。1 回のネットワーク ラウンドトリップで、コストのかかるハイパーバイザ スレッドのウェイクアップが 4 回も必要になることが多かったのです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/andromeda-sdn-2wcqg.max-700x700.PNG
Andromeda 2.1 のハイパーバイザ バイパスによって最適化されたデータパス

実際のパフォーマンス

新しい Andromeda 2.1 スタックでは VM 間のネットワーク レイテンシが顕著に小さくなります。次に示す数値は、オリジナル スタックのラウンドトリップ時間の中央値と比較して、レイテンシがどれくらい低減されたかを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/andromeda-sdn-5sqlg.max-700x700.PNG
Andromeda のバージョンアップに伴うレイテンシ低減の度合い

こうしたラウンドトリップ時間の短縮は、レイテンシの影響を受けやすいアプリケーションのパフォーマンスに直接反映されます。ハイパフォーマンスのインメモリ NoSQL データベースである Aerospike を例にとってみましょう。次に示すように、新しい Andromeda スタックにより、Aerospike のリクエスト レイテンシは小さくなり、リクエスト スループットは向上しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/andromeda-sdn-1bsoo.max-700x700.PNG
https://storage.googleapis.com/gweb-cloudblog-publish/images/andromeda-sdn-3ygvf.max-700x700.PNG

Andromeda SDN は Google Cloud の基盤を支える技術であり、それゆえどのアプリケーションを実行する場合でもイントラゾーンのレイテンシには同様の改善が見られるはずです。

柔軟性と確実性を提供

Andromeda SDN は、どのハードウェア ベースのスタックよりも高い柔軟性を実現します。SDN であれば、仮想ネットワーク インフラストラクチャ全体をスピーディに開発、総点検できます。新しいクラウド ネットワーク サービスや機能を実装したり、セキュリティ パッチを適用したり、パフォーマンスを大幅に改善したりすることも可能です。しかも、SDN の柔軟性のおかげでコードを徹底的にテストできるため、ダウンタイムやリブートはもちろん、VM のマイグレーションすら必要とせずに、自信を持ってそれらを Google Cloud にデプロイできます。

Andromeda SDN が提供する新機能とネットワーク パフォーマンスの向上にご期待ください。

* この投稿は米国時間 11 月 2 日、Staff Software Engineer である Jake Adriaens によって投稿されたもの(投稿はこちら)の抄訳です。

- By Jake Adriaens, Staff Software Engineer

投稿先