28 Jan. 2002
今回、ちょっと手元に色々資材が揃ったので、いくつかのNICを比較してみました。
CPUはIBM xSeries 200 Celeron 800MHzモデル(8478-31X)
2台を対向でスイッチングHUB経由で接続しました。
テストしたNICは、オンボードのNIC(eepro100)と、インテル純正のIntel PRO/100Sカード
(PCIバス接続)、corega FEtherW PCI-TX(AMD pcnet32)の3種類。
ただし、事前テストで、オンボードNICとインテル純正Intel PRO/100Sカードでは、
ほとんど差が無いようなので、3種全種類での比較は行っていません。
主には、eepro100対応NICとpcnet32対応NICの比較を行ったと考えて頂ければ良いかと思います。
2台のCPUを繋ぐスイッチングHUBは、既に廃版機種となっているメルコのLSW-10/100-8という8ポートのスイッチングHUB。
24時間連続稼動すると熱暴走するので現用から外されてその辺に転がってたものです(^^;。
スイッチには、測定対象の2ポートのみを接続し、他のトラフィックの影響を受けないようにしました。
ソフト関連は、どちらもDebian GNU/Linux potatoベースで、カーネルは2.2.20
測定の方法は、512MByte(512*1024*1024=536,870,912byte)のファイルを
# dd if=/dev/zero of=target bs=1024k count=512
で作成し、lftpでput/getを行い、lftpの表示するレートを使っています。
2台とも今回テストで必要なタスク以外はほとんど無い状態で計測しています。
更に、Intelから提供されているe100ドライバも試してみました。
計測を行った全ての組み合わせで、put/getを5回ずつ行っています。
pcnet32 ←→ pcnet32 | |||||
---|---|---|---|---|---|
get | 1 | 9.244 | put | 1 | 10.949 |
2 | 9.009 | 2 | 11.006 | ||
3 | 8.979 | 3 | 10.914 | ||
4 | 8.913 | 4 | 11.011 | ||
5 | 8.954 | 5 | 10.860 | ||
Ave | 9.020 | Ave | 10.948 |
eepro100 ←→ pcnet32 | |||||
---|---|---|---|---|---|
get | 1 | 8.371 | put | 1 | 10.979 |
2 | 8.388 | 2 | 11.242 | ||
3 | 8.181 | 3 | 10.844 | ||
4 | 8.238 | 4 | 11.258 | ||
5 | 8.306 | 5 | 10.951 | ||
Ave | 8.297 | Ave | 11.055 |
eepro100 ←→ eepro100 | |||||
---|---|---|---|---|---|
get | 1 | 8.521 | put | 1 | 11.094 |
2 | 8.350 | 2 | 10.809 | ||
3 | 8.484 | 3 | 11.223 | ||
4 | 8.484 | 4 | 11.229 | ||
5 | 8.391 | 5 | 10.807 | ||
Ave | 8.446 | Ave | 11.032 |
e100 ←→ e100 | |||||
---|---|---|---|---|---|
get | 1 | 9.317 | put | 1 | 11.436 |
2 | 9.335 | 2 | 11.286 | ||
3 | 9.310 | 3 | 11.294 | ||
4 | 9.198 | 4 | 11.283 | ||
5 | 9.232 | 5 | 11.282 | ||
Ave | 9.278 | Ave | 11.316 |
eepro100とpcnet32の比較では、組合わせによって速かったり遅かったりとありますが、
比較的pcnet32はgetが速く、eepro100はputが速いという感じでしょうか?
これは、putの場合、バッファまで書いたらおしまいなので、
eepro100の方が送信バッファが大きいとかそういう事なのかもしれません
(ソース見たわけでは無いので確証はありません)
eepro100がputが速いと言っても僅差ですから、
多少(ほんのちょっとだけ)pcnet32が総合的には速いのかもしれません。
ただ、計測中、pcnet32は「Tx FIFO Error」が出まくりでした(^^;。
エラーが出てもデータはちゃんと届くし、レートも速いので気にしなければいいのかもしれませんが、気持ちは悪い(^^;
特筆すべきはやはりインテル純正ドライバのe100でしょう。
eepro100とpcnet32の僅差と違って、有意な差があります。
極限まで(^^;使い倒したのであれば、インテルチップ+e100ドライバというのが良いかも。
まぁ、eepro100に比べて、使用されている場面は少ないでしょうから、実環境で使い倒したらどうなのかは気になる所です。
多少のレートは気にしないけど
気持ち悪いのはヤダ
という人はeepro100
多少の気持ち悪さは気にしないし、カーネルに自前でパッチするのも面倒だけど速いのがいいなぁという人はpcnet32
バリバリ速いのがいいのさ!という人はe100をオススメ.........なのかな?
ここでは、ざっと比べてみただけで、公式に認められるほど条件/環境を詰めて計測した訳ではないので、
あくまでも「ウチで試してみたらこんなんでした」というだけで、
他で試してみたら別の結果が出るかもしれません。
一番クサいのは、Celeron800MHzというスペックが足を引っ張ってる場面があるかもしれないという点でしょうか。
機会があれば(そして気力があれば(^^;)もっとハイスペックなCPUでやってみる....かも(^^;