今回のベンチマークテストに使用した2台のマシンはそれぞれ、AMD Athlon64 X2 4200+およびIntel Core 2 Quad Q6600クアドコアCPUを搭載したP35マザーボードを使用している。このうちAMDマシンはNvidia CK804 Ethernet Controller(rev a3)とforcedethドライバという組み合わせで、IntelマシンはMarvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller(rev 12)とsky2ドライバという組み合わせである。
これらの比較対象に選んだNICSは、2枚のIntel Pro/1000 PTギガビットPCIe NICである。特に言及しない場合、ここでのテストは2つのコンピュータ間をDLink DGS-1008Dギガビットスイッチでつないだ結果を示している。またこれらの2つのテストマシンを除き、このスイッチには他の負荷はかからないようにしてある。なおスイッチを介さない状態でIntel NICに対していくつかのテストも実行しておいたが、その際にはレイテンシは10から20%程度向上したものの帯域幅については大差なかった。
ベンチマーク測定用ツールとして使用したのは、lmbench(バージョン3.0-a9)、fio(バージョン1.18)、bonnie++(バージョン1.03)である。lmbenchでは様々なマイクロベンチマークを実施できるが、ここではネットワークに関連する項目として、ネットワーク帯域幅を計測するbw_tcpおよび、TCPとUDP通信のネットワークレイテンシをそれぞれ計測するlat_tcpとlat_udpに注目した。同じくfioおよびbonnie++で計測したのは、NFSを用いて共有されたRAID-5アレイに格納されているファイルシステムへのアクセスパフォーマンスである。またfioによる計測は主として、NFS共有されたファイルシステムに対する一般的なアクセスパターンがNICの違いによりどのように変化するかの確認に使用している。
最初に行ったのは、各マシンの発揮可能な最大パフォーマンスを確認しておく目的でそれぞれのローカルホストに対して実施した、lmbenchによるテストである。
| ベンチマーク\マシン | AMD X2 4200 | Intel Q6600 |
|---|---|---|
| bw_tcp(MB/秒) | 766 | 1298 |
| lat_tcp(マイクロ秒) | 31.8 | 29.8 |
| lat_udp(マイクロ秒) | 31.9 | 30.2 |
マザーボードNICを介して通信させた場合、bw_tcpは109.43Mbps、TCPレイテンシは1,459マイクロ秒、UDPレイテンシは1,129マイクロ秒というテスト結果が出された。次にIntel NICを介して同じテストを実施した場合、bw_tcpは87.47Mbps、TCPレイテンシは121マイクロ秒、UDPレイテンシは100マイクロ秒というスコアを出している。ここではネットワークレイテンシが大幅に改善されているが、この結果についてはマザーボードのオンボードNICに接続し直した上で再検証してある。またbw_tcpについてはマザーボードNICを使用した場合よりもIntel NICを使用した場合の方が悪化しているが、この結果はジャンボ(jumbo)フレームの有効化やe1000モジュールパラメータ(InterruptThrottleRate、RxDescriptors、TxDescriptors)の変更をしても劣ったままであった。その他IntelのWebサイトから入手したドライバe1000-7.6.15.4も試してみたが、その場合もIntel NICでのbw_tcp値87.5Mbpsに対する大幅な改善は成されていない。結局、Intel NICを使用することでレイテンシは1桁短縮されるものの、最大スループットについてはオンボードNICのレベルに戻すことはできなかった。Intel NICにてこうした悪化が生じる理由は今のところ不明である。
