NW高速化技術比較(前編) ~高速化技術とクラウド 第4回~
近年のネットワーク利用状況と高速化技術について解説
DPDK入門
- 2023年03月23日公開
NTTテクノクロスの山下です。ネットワークの高速化のための技術は多く存在していますが仕組みの違いや特徴について2回にわたってお伝えします。
今回お伝えしたいこと
前編である今回は近年のデータトラフィックの増加傾向や、それによる影響、ソフトウェアで大量のパケットを処理する際のボトルネックについて解説します。
後編では、これらのボトルネックの対処案をご紹介します。
NWトラフィックの高まり
肌感覚では、「日々の生活の中でデータを使う量は増えている」というのが私の実感なのですが、実際のところ、どうなのだろうかと思って総務省発行の令和2年版情報通信白書を調べてみました。
白書では「データ流通量の爆発的拡大」として、日本におけるインターネットトラフィックについて触れています。ダウンロードトラフィックが5年前と比較して約1.5倍となっています。これは無線・有線を含んだ値ですが、たしかにデータ量は増えていそうです。
図1.我が国のブロードバンド契約者の総トラヒック
データ量が増えると何が起きるか
NWを流れるデータ量は年々増加しています。このとき、NWを構成する機器の処理能力が十分高く、流れるデータ量が増加しても処理ができている場合には、問題は生じません。
逆にNW機器の処理能力を上回るデータが機器に到達したときに以下のようなことが発生しえます。
a. 遅延:パケットが目的地に到達するものの、遅れる
->ユーザエクスペリエンスの低下(通話の遅延、自動運転などだと事故につながりうる)
b. パケットロス:大切なデータの紛失
-> ユーザエクスペリエンスの低下(動画における映像でのコマ落ち)、再送によるトラフィック増
図2. 遅延とパケットロス
ソフトウェアにおけるパケット処理
図3. HWパケット処理とSWパケット処理
以前は、NW機器のパケット処理はハードウェアで実施することが大半であったように思います。
近年、従来ハードウェア的に実現していたルータ機能を、ソフトウェア上で実現が可能となっています。
このことにより、エンドユーザはクラウド(Amazon AWS等)やオンプレミス上の仮想化PF(VMware等)で必要に応じて、速やかに仮想ネットワークやサーバ群を構築管理することができるようになりました。
ただし、これは従来専用ハードウエアでパケット処理をしていたのが、汎用機(x86)アーキテクチャ上でパケット処理をすることを意味し、仮想化のデメリットといわれる「処理性能の低下」を引き起こすといわれています。
ソフトウェアパケット処理におけるボトルネックの一例
CPU上に実現されるソフトウェアパケット処理におけるボトルネックにはいくつかありますが、今回は以下の2つについてご紹介します。
・カーネル処理のオーバーヘッド
・NIC(Network Interface Card)処理速度に対するメモリバスの処理速度ネック
カーネル処理のオーバーヘッド
NICは受信したパケットや送信するパケットを格納しておくメモリ領域を持っています。このメモリ領域のことを「キュー」といいます。 通常はカーネルがNICが受信したパケットをキューから取り出したり、送信したいパケットをキューに格納します。割込みやカーネル空間からユーザ空間へのパケット引き渡し等のオーバーヘッドが発生し、アプリケーションのパケット処理性能に影響を及ぼしてしまいます。
図4. カーネル処理のオーバーヘッド
NIC処理速度に対するメモリバスの処理速度ネック
ネットワークパケットをCPUで処理させる場合、ネットワークから受信したパケットのサイズが大きかったり、大量のパケットを受信するとメモリとCPUとの間で大量の転送が発生します。これがメモリバスを圧迫し性能のボトルネックとなりえます。
図5.CPU処理ボトルネックの一例
次回予告
前編である今回は近年のデータトラフィックの増加傾向や、それによる影響、ソフトウェアで大量のパケットを処理する際のボトルネックについて解説しました。
後編では、これらのボトルネックに対する対処案を4つご紹介します。
[著者プロフィール]
フューチャーネットワーク事業部 第一ビジネスユニット
山下 英之(YAMASHITA HIDEYUKI)