遅いPCで速いNICを使うと余計に遅くなるという話

初版 2003/1/16
改定1版 2003/1/18
改定2版 2003/2/3
(文字コードをUTF-8に修正2022年6月)

始めに

経験的に知っていたのですが、遅いPCで100BASE-TxのNICを使うと、10BaseT のNICより通信速度が遅くなります。事実なんだろうかと思い、ベンチマーク してみました。

このWebをFreeBSD-users-jpで紹介したところ、chipsetの性能に影響されると 指摘をうけました。[FreeBSD-users-jp 72985]など。改定2版ではchipsetの 性能に定評があるIntel製chipセットのPCをベンチマークに追加しました。

改定2版を作るにあたり、Intel製chipsetのPCが欲しいとFreeBSD-users-jpに 送った所、学内の電子情報工学科の方より貸していただきました。ありがとう ございました(_m_)


ベンチマーク環境


ベンチマーク結果

グラフの縦軸は通信速度(MBPS)です。横軸は、メッセージ(データ)サイズ (byte)です。

メッセージサイズを変化させながら(1〜786,435byte)通信速度を測定した結果 をグラフ可しています。


ed0: Melco LGY-PCI-TL (10BaseT)
NE2000互換NIC(ed0)で、10BaseTの例です。どのPC/メッセージサイズでもまんべんなく速度が出ているようです。


ed1: Elecom Laneed LD-PNE20/TA Ethernet Adapter (10BaseT)
これもNE2000互換NIC(ed1)で、10BaseTの例です。ISAです。FMVでは特定のメッ セージサイズで通信速度の落ち込みが見られますね。相性でしょうか?


ep0: 3Com 3C509-Combo EtherLink III (10BaseT)
NE2000以外の10BaseT NICとして、3com製の ISAカードです。 このNICでもFMVは性能が良くないですね。ISAの性能が悪いのかな?

(余談ですが、手もとには3com 3c515という100BaseTx対応の珍品ISAカードが あるのですが、FreeBSDは未対応なんですよねぇ…。)


xl0: 3Com 3c905B (100BaseTx)
これは100BaseTxの例です。FMV,IBMでメッセージサイズがある一定値を越えた 処で極端に速度が落ち込んでいます。ですが、Intel製チップセットのPC、 I430VXでは落ち込みが見られません。


xl0: 3Com 3c905B (10BaseT)
同じxl0でも、10BaseT固定すると、FMV,IBMで速度の落ち込みは見られないようです。


sis0: IO-DATA ET100-PCI-L (100BaseTx)
xl0を100BaseTxで使った場合と同じ結果ですね。


sis0: IO-DATA ET100-PCI-L (10BaseT)
xl0と同様に、10BaseT固定すると、速度の落ち込みは見られないようです。


fxp0: Intel 82559 (100BaseTx)
FreeBSD界隈では評判の良いfxpですが、I430VX以外の遅いPCでは散々な状況でした。 FMVではベンチマークソフトがタイムアウトして終了します。


fxp0: Intel 82559 (10BaseT)
fxpも10BaseT固定すると、速度の落ち込みは見られないようです。


dc0: AI Brain FEPCI-IXS (100BaseTx)
旧DEC製品ですが、Intelが買収して型番が変わった Intel 21143です。 IBMは割合まともですが、FMVは良くないですね。

なお、I430VX以外のPCではベンチマーク中に次のエラーが表示されました。

FMV, IBM:
	dc0: TX underun -- increasing TX threshold
        dc0: TX underun -- using store and forward mode

Biostar:
	dc0: TX underun -- increasing TX threshold


dc0: AI Brain FEPCI-IXS (10BaseT)
dcも10BaseT固定すると、速度の落ち込みは見られないようです。


pcn0: IO-DATA ET/PNA-PCI (100BaseTx)
このNICのチップはAMD製のHomePNA用チップです。100BaseTxでも利用可能です。 FMV,IBMもかなり良い成績を出していますね。ですがPNA用ですので、通常の pcnと比較して良いものか疑問です。

なお、このNICをFreeBSDで使うにはパッチが必要です。

  http://www.sanpei.org/FreeBSD/100BASE/IO-DATA-ET-PNA-PCI


pcn0: IO-DATA ET/PNA-PCI (10BaseT)
このNICは100BaseTxでも安定していますので、あえて10BaseTにする必要はな いでしょう。


em0: Intel PRO/1000 MT Desktop Adapter (100BaseTx)
xl0やsis0ではある一定値サイズより大きいメッセージサイズで速度の落ち込 みが見られましたが、em0ではメッセージサイズが小さいと速度の落ち込みが 見られますね。


em0: Intel PRO/1000 MT Desktop Adapter (10BaseT)
em0は10BaseT固定しても、IBM,FMVでは安定した通信速度は望めないようです。


結論

古いPCでは、100BASE-TxのNICを使うと10BaseTのNICより通信速度が遅くなる という経験法則は、Intel製チップセットには当てはまらないようです。

ですが、100Base-Txで成績がふるわないFMV,IBMでもpcnは良い成績を出してい ます。

まとめると


付録: DEVICE_POLLINGをON/OFFした場合

[FreeBSD-users-jp 72963]にて、このWebを紹介した所、DEVICE_POLLINGを 有効にしてみてはどうかと指摘された。試してみる。