パケット/秒(PPS)を計測する
はじめに、ネットワーク性能指標の一つであるパケット処理/秒(PPS:Packet Per Second)を測っていきましょう。ここでは「普及目前!10Gigabit Ethernetの世界を知る」の「パケット処理の限界性能」でご紹介した、pkt-genを搭載するPICOBSDイメージをトラフィック生成用として使います(図1)。

純粋なネットワーク性能を評価するため、10Gigabit Ethernetの接続はTwinaxケーブルを使い1対1のBack-to-Backとします。その上でpkt-genから送出されたパケットを、受信側のLinuxでvnstatでカウントします(図2)。
つづいて、pkt-genを使いパケットサイズを変更しながらネットワーク性能測定を行っていきましょう。Linuxの標準TCP/IPドライバは、パケットサイズにより性能低下があることが古くから知られています。その点を確認する意味でも、パケットサイズを64バイトから1500バイトまで変更しながら測定を行います(リスト1)。
Login: admin Password: admin PICOBSD# pkt-gen -i ix0 -f tx -l 64 -d 10.10.11.2 -D 00:04:23:08:91:dc PICOBSD# pkt-gen -i ix0 -f tx -l 256 -d 10.10.11.2 -D 00:04:23:08:91:dc PICOBSD# pkt-gen -i ix0 -f tx -l 512 -d 10.10.11.2 -D 00:04:23:08:91:dc PICOBSD# pkt-gen -i ix0 -f tx -l 1024 -d 10.10.11.2 -D 00:04:23:08:91:dc PICOBSD# pkt-gen -i ix0 -f tx -l 1500 -d 10.10.11.2 -D 00:04:23:08:91:dc
LINUX# vnstat -l -i eth0
10GbE H/W Offload NICという存在
今回は補足として、10Gigabit Ethernetが持つ理論上の性能値を(10GbE Wire-rate)として記載しましたので、違いをご確認ください(図3)。ご覧のように、パケットサイズは256バイトを境界として、ワイヤ・レートとの差が見えています。
つぎに、具体的なHTTPトラフィックとパケットサイズを比較してみましょう(図4)。赤丸で示されたWebサイト上のアイコンは188バイトですが、それを取得するまでにかかったHTTPトラフィックが638バイトあります。これを先ほどの図3に当てはめると、ネットワーク性能はワイヤ・レート範囲で収まっていることが分かります。Webサービスを考えた際に、特別小さいメッセージのやり取りを除いて、ネットワーク性能にボトルネックが生じることはないと判断できます。

では、特別小さいメッセージのやり取りは、どのように処理すべきでしょうか? ここでは10Gigabit Hardware Offload NICについて、続けて解説します。今回用いたのはSolareflare社製のNICです(図5)。

このNICでは、TCPおよびIPなどのヘッダ処理をNIC内部で処理することで高速化を図っています。設定オプションなどは製造元のドキュメントをご参照いただきますが、特別な設定を行わずとも、スンナリ動きますのでご安心ください。前述と同じようにネットワーク性能測定(PPS)を行ったものが図6です。
少々読みづらいところもありますが、64バイト付近の小さなパケット処理性能まで、しっかりとワイヤ・レートを叩き出しています。Solarflare社製の10Gigabit Ethernet Hardware Offload NICは、証券市場のHFT(High Frequency Trading:高頻度売買)に用いられている技術であり、まさに特殊用途に創られているという感じです。
現代ではオンラインゲームでの小さなデータのやり取り、近い将来であればIoT(Internet of Things:モノのインターネット)など、小さいデバイスから発生する小さいメッセージを大量に受け取る場合に、これらが役に立つと考えられます。
標準的な10GbE-NICであれ、Hardware Offload NICであれ、市場価格としてはDual Port NICがすでに$400を切る状況にありますので、システム仕様に応じて選択肢としてチョイスすると良いでしょう。