サーバ向け高速ネットワーク技術の有力な選択肢である10GbEと40Gbps QDR InfiniBandによって、サーバのネットワーク性能はどこまで引き出せるのか――テストに基づいて探っていきます。
2011年7月に「InfiniBandで変わるデータセンター内通信(後編)」を公開してから1年が経ちました。いまでは10ギガビットイーサネット(GbE)NICの価格は300ドル付近まで近づき、InfiniBandも40Gbps HCAへシフトしています(図1)。比較的高価だった10GbE NICやスイッチも、この1年で普及価格帯へ近づいてきました。
例えば、10GbEスイッチの本体価格は1万ドル付近にまで下落してきました。40Gbps QDR InfiniBandスイッチも5000ドル前後と、引き続き低価格を維持しています(図2)。一方で、40GbEスイッチがまだ製品として初期段階にある現状から考えると、現時点でサーバ向け高速ネットワーク技術として選択できるのは、10GbEと40Gbps QDR InfiniBandに限られるといえるでしょう。
では、なぜいまWebサービスに高速ネットワーク技術が必要なのでしょうか? 高速ネットワーク技術とサーバ性能の現状を見ながら、その理由を解き明かしていきましょう。
米Morgan Stanleyは2009年に行った調査で、2014年ごろには、モバイル環境からのインターネットユーザー数がデスクトップ環境のそれを追い抜くだろうと予測していました(図3)。この調査から3年が経とうとしている現在、予想はまさに現実のものになろうとしています。モバイルインターネットの利用拡大は目覚ましく、家庭にも個人にも深く浸透してきています。
さて、モバイル環境向けに提供するWebサービスでは、ワイヤレスデータ通信網を考慮して、コンテンツ自体を小さく作るよう心掛けるはずです。これにより、小さなパケットを大量に送受信できるWebサーバの重要性が必然的に増しており、「ネットワーク帯域は使わないが、膨大なユーザーを一度に処理できるシステム」が望まれるようになっています。
Webサービスのようなネットワークアプリケーションを考えた場合、サーバのネットワーク性能をしっかりと把握しておくことが重要になります。
ネットワーク性能指標には「データ転送性能」(Gbps:Gbit/sec)と「パケット処理性能」(PPS:Packet/sec)がありますが、Webサービスの場合、PPS(Packet/sec)をしっかり見ておく必要があります。
理由は、HTTPのリクエスト/レスポンスの構造によります。HTTPではGETリクエストを送信した後レスポンスデータを受信しますが、Webサービスを構成するサーバには、高負荷状況においてもHTTPリクエストの受け応えに耐え得る全体性能が必要となります。
HTTP GETリクエストを分析すればご理解いただけると思いますが(図4)、クライアントからは主に数百Kbytes程度のデータが送信され、それをWebサーバないしロードバランサが受信し、処理を行っています。Webサーバ上でこれらHTTPリクエストをしっかりと処理できなければ、サービス品質に著しく影響を及ぼしかねません。
ここでは、サーバが本来持っているパケット処理性能(PPS)を把握するために、現在利用可能なネットワークアダプタを用意して評価を行ってみました。
実験ではトラフィック生成用のサーバを複数台用意し、64bytesの小さなパケットを100万〜1000万PPS(Packet/Sec)で送出して負荷をかけ、受信サーバ側で取りこぼしなくパケットを受け取ることができたかを見ています。
# modprobe pktgen //Sender Traffic Generate TIPS (40GbE NIC) # echo "rem_device_all" > /proc/net/pktgen/kpktgend_0 # echo "add_device eth3" > /proc/net/pktgen/kpktgend_0 # echo "max_before_softirq 30000" > /proc/net/pktgen/kpktgend_0 # echo "count 0" > /proc/net/pktgen/eth3 # echo "clone_skb 10000000" > /proc/net/pktgen/eth3 # echo "pkt_size 64" > /proc/net/pktgen/eth3 # echo "delay 0" > /proc/net/pktgen/eth3 # echo "dst 10.0.0.1" > /proc/net/pktgen/eth # echo "dst_mac 00:02:c9:00:e8:14" > /proc/net/pktgen/eth3 # echo "start" > /proc/net/pktgen/pgctrl
# vnstat -l -i eth3 //Receiver Traffic Monitoring TIPS (40GbE NIC) Monitoring eth3... (press CTRL-C to stop) rx: 29.56 Gbit/s 61243 p/s tx: 0 Mbit/s 0 p/s
この評価を、同じ条件の下、1GbE、10GbE、40GbE、FDR10 InfiniBandの4種類に対して実施しました。各種アダプタのドライバ性能への依存も考え、複数ベンダで用意できるアダプタについては、それを用意し評価しています(図5、図6)。
受信サーバにはまったく同じ筐(きょう)体を用い、1/10/40GbE、FDR10の各アダプタを交換することで測定誤差を極力排除しました(FDR10 InfiniBandの測定データでは伝送メディアおよび測定ツールが異なりますが、参考までに掲載しています)。
結論からいえば、1GbEに比べて、10/40GbEのパケット処理性能向上が確認でき、サーバ本来が持つネットワーク性能の潜在量も確認できました。しかし同時にパケット処理性能(Packet/sec)に頭打ち(性能限界)が生じていることも確認できました。
主な理由としては、イーサネットドライバやOSの構造的な問題などが考えられます(FDR10 InfiniBandはドライバやOS処理系の構造が異なるため、大きな差が出ています)。
イーサネット環境での実験において、ドライバやOSが持つネットワーク性能向上を促すパラメータを最大限に活用してこの結果ですので、これを限界値と見ることができるでしょう。
これらの結果を踏まえると、前述のとおり、現在サーバ向け高速ネットワーク技術の選択肢が10GbEと40Gbps QDR InfiniBandに限られてくる理由も再認識できるでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.