川口です
手元の NIC 群をちょっとテストしてみました.
(解決策ではないです...)
◆host1: bge0, em0 (Intel Xeon 5130(2GHz); chipset: intel 5000X)
bge0: <Broadcom BCM5752 A1, ASIC rev. 0x6001> mem 0xfba00000-0xfba0ffff irq 17
at device 0.0 on pci31
bge0: firmware handshake timed out
miibus0: <MII bus> on bge0
brgphy0: <BCM5752 10/100/1000baseTX PHY> on miibus0
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX,
1000baseTX-FDX, auto
bge0: Ethernet address: 00:17:08:xx:xx:xx
(微妙にイヤなメッセージがありますね...)
em0: <Intel(R) PRO/1000 Network Connection Version - 6.2.9> port 0x1100-0x113f
mem 0xfb440000-0xfb45ffff,0xfb400000-0xfb43ffff irq 56 at device 10.0 on pci17
em0: Ethernet address: 00:04:23:xx:xx:xx
◆host2: bce0 (Intel Xeon 5150(2.6GHz); chipset: intel 5000P)
bce0: <Broadcom NetXtreme II BCM5708 1000Base-T (B1), v0.9.6> mem
0xf8000000-0xf9ffffff irq 16 at device 0.0 on pci3
bce0: ASIC ID 0x57081010; Revision (B1); PCI-X 64-bit 133MHz
miibus0: <MII bus> on bce0
brgphy0: <BCM5708C 10/100/1000baseTX PHY> on miibus0
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX,
1000baseTX-FDX, auto
bce0: Ethernet address: 00:18:71:73:c5:5a
どちらも FreeBSD/i386 6-stable の標準(SMP)kernel です.
(host1 は10月頃, host2 は 11月頃のもの)
ports/net/rude を利用して 1500Byte UDP の転送性能をみています.
receiver% crude -s 30
sender% cat rude.cfg
START NOW
1000 0030 ON 3002 10.1.1.1:10001 CONSTANT 70000 1500 # ex. 1500Byte @
70000pps
11000 0030 OFF # 10秒間で終了
sender% rude -s rude.cfg
で rude 終了後に crude を ^C して統計情報をみるという感じです.
組合わせは以下の通りで,hub なしにストレートケーブル直結です.
pattern1: [EMAIL PROTECTED] => [EMAIL PROTECTED]
pattern2: [EMAIL PROTECTED] <= [EMAIL PROTECTED]
pattern3: [EMAIL PROTECTED] => [EMAIL PROTECTED]
pattern4: [EMAIL PROTECTED] <= [EMAIL PROTECTED]
結果は pattern1,3,4 は 900Mbps(76kpps) を越えるくらいは行きますが,
pattern2 だけ 500Mbps(〜44kpps) 程度で頭打ちのようです.
ということですくなくとも
「PCI-Express 接続の [EMAIL PROTECTED] の送信側の性能」が少々怪しいようです.
(自分で以前テストしたのは,緒事情により受信側性能だけだったため,
bge系に難ありとは全然気が付かなかったのですね)
pattern1 では 70000pps と設定して
10s で 713952 received, 2 out-of-seq, 334 lost(1.07e8 Byte/s) でしたが
pattern2 では 45000pps の設定で既に 44000 received, 0 out-of-seq, 14546 lost です.
(pattern3,4 は pattern1 と概ねにた数字です;
いずれも 7万より増やしても 75000pps辺りから頭打ちになります)
ちなみに pattern2 でも payload size を 1500B => 150B にすると
pps は増えますので,割り込みとかの packet 処理性能の問題ではないようです.
(ま,"送信" だから割り込みはないですよね)
ちなみに 150Byte/packet だと loss率とかの特性が違っているようですが,
この領域では既に rude 自体があまりまともに動いていない可能性も
ある気がするのであまりテストしていません.
一番負担の軽い 1500Byte/packet でこの程度だと
もっと問題視されていても良さそうな気がしますが,どうなんでしょう...
In Sun, Dec 17, 2006 at 03:05:32PM +0900,
Kazumaro Aoki <[EMAIL PROTECTED]> wrote:
> > src% cat rude.cfg
> > START NOW
> > 1000 0030 ON 3002 10.1.1.1:10001 CONSTANT 500 1500 # ex. 1500Byte @ 500pps
> > 11000 0030 OFF # 10秒間で終了
> > EOF
> > src% rude -s rude.cfg
>
> EOFを入れると「rude -s rude.cfg」がすぐ終ってしまったので、削りました。
> 10.1.1.1は、「crude -s 30」を立ち上げるマシンと解釈して実験しました。
失礼しました.EOF は当方の書き間違いです.
--
∧∧
Zzz.. (- - )⌒⌒⊇〜 川口 銀河
############## [EMAIL PROTECTED]