From: KAWAGUTI Ginga <[EMAIL PROTECTED]>
Subject: [FreeBSD-users-jp 90223] Re: PE850 network performance
Date: Sun, 17 Dec 2006 11:00:04 +0900

> 面白い話を見逃してた...

それは頼もしい限りです。
誰も反応無く数日後に嫌々SuSE Linuxをinstallしている自分を想像していま
したので。

> In Sun, Dec 17, 2006 at 01:12:52AM +0900,
> Kazumaro Aoki <[EMAIL PROTECTED]> wrote:
> > 110000KB/sぐらい出るPCはPCIで、今回のマシンはPCI Expressということから、
> > PCI ExpressのFreeBSDの対応はどうなっているのかなぁとか、ちょっと勘ぐっ
> > ています。が、内部的な話になると私にはお手上げ状態で困ってます。
> 
> (細かいですが PCI => PCI-X かな???)

詳細はよく分かっていないのですが、そうかもしれないです。onboardの
network interfaceです。5.4Rの起動メッセージでは
bge0: <Broadcom BCM5702 Gigabit Ethernet, ASIC rev. 0x1002> mem 
0xfe100000-0xfe10ffff irq 27 at device 3.0 on pci2
brgphy0: <BCM5750 10/100/1000baseTX PHY> on miibus0
と主張しています。

> とりあえず FreeBSD/i386 6-stable にて PCI-Express な bge ですが
> chip が 5752 (HP xw8400)という代物は手元にあります.

Dellのmanualによると、PowerEdge 850のnetwork controllerはBCM5721とある
のに7-CURRENTでは、bge0でBMC5703 A2とかbrgphyではBCM5750と認識している
のも気になっているのでした。そういうものなのかもしれませんが。

> SmartBits からの packet をどれだけ受け取れるか,ということは
> 先日試していたんですがもっと性能は高かったように思います.
> (テストのやり方が全然違うので比較が難しい && そういえば送信側は試してない...)

SmartBitsとは何か…と思ってGoogleで調べたら性能測定機なのですね。

> さすがに小さいパケット(200Byte/packet)を 96ns 間隔送信だと
> 結構取りこぼしがあるけど 700Mbps 前後は出ていました.
> (device polling とかはやっていないインストールそのまま状態)

上のbge0がBCM5702として認識しているのでは890Mb/sぐらいはttcp測定で出て
いることを確認しています。これだけ出ればもちろん満足です。

> なお,同一機において PCI-X 接続の Intel GbE(em) な I/F とは
> 性能において特段ギョッとするような差はなかったはずです.
> (bge の方が取りこぼしはすくなかった; 
>  em が PCI-Exp => PCI-X bridge 経由というのが影響あるかどうかは知らない)

こちらでも別マシンですが、GbE(em)で、onboardでは900Mb/sぐらい、PCIでも
600Mb/s前後は出るのを体験しています。

> > bgeでもちゃんと110000KB/sぐらいamd64 PCがあることから、もしかしたらbge
> > が遅いのではなく、busのdriver周りに問題がある可能性を考えています。
> 
> pps 単位(割り込みなどの処理能力; 小パケットをガンガン流す)の話と
> bps (大パケット,場合によっては jumbo frame などでの data 転送能力)に分けて
> 試してみることはできますでしょうか?

出来る限りの実験はしてみたいと思いますけど、具体的にはどうすればよいの
でしょうか?

とりあえず、こちらではLAM/MPI (ports/net/lam)で、がんがんデータを流す
のが速くなればOkの状態です。一回の送信で数十MB以上は流すので、細かいパ
ケットに関するperformanceは上がらなくても構いません。

> ttcp が良いかどうかは分かりませんが,自分は ports/net/rude で
> UDP constant rate でやっています.(rude が良いのかも良く分かりませんが)
> 
> 受信側で
> dst% crude -s 30
> しておいて
> 
> 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」を立ち上げるマシンと解釈して実験しました。

> rude が終了したら受信側 crude を ^C すると summary がでます.

ちょっと都合があって、どちらもPowerEdge 850で、FreeBSD/amd64ですが、
versioを混ぜて実験しました。

7.0-CURRENT% crude -s 30
5.4-RELEASE% rude -s rude.cfg
Flow_ID=30 
Packets: received=5001   out-of-seq=0   lost(est)=0 
Total bytes received=7501500 
Sequence numbers: first=0   last=5000 
Delay: average = 3688611092523405.640768   jitter=0.000047   seconds 
Absolute maximum jitter=0.000182   seconds 
Throughput=750147   Bps  (from first to last packet received) 

7.0-CURRENT% rude -s rude.cfg
5.4-RELEASE% crude -s 30
Flow_ID=30 
Packets: received=5001   out-of-seq=0   lost(est)=0 
Total bytes received=7501500 
Sequence numbers: first=0   last=5000 
Delay: average = 0.001759   jitter=0.000047   seconds 
Absolute maximum jitter=0.000144   seconds 
Throughput=750153   Bps  (from first to last packet received) 

7.0-CURRENTの方には、すぐ計りたかったので、6.2R-BETA3のpackageを突っ込
んだせいかDelayの表示がちょっとおかしいようですが、必要な情報は得られ
ているでしょうか。

> > > > ttcp -t -s -b 131072 -n 65536 -v HOST
> 
> 一応 ttcp をインストールしてみましたが,tcp のスループットを
> 試しているんですね,これ.
> これで "Linux のスループット" と言うと,最近の Linux (2.6系?)は
> BIC-TCP というかなり変態な TCP(そんなの TCPじゃねーよ説あり)らしいので
> NIC の性能とはまた違う要素を比較してしまう部分はあるかと思います.

うーむ。
とはいえ、やりたいのはTCPを速くしたいというのではなくてLAM/MPI 経由の
通信性能をあげたいだけなので、どう解決してしまってもいいんですが。^^;

> とりあえず BCM5752(一応 5751 もあることはあるんですが 5750 はないな...)
> on FreeBSD/i386,6-stable で良ければ,来週機会を見つけて試してみたいと思います.

どんな些細な情報でもお待ちしております。

青木和麻呂@神奈川県在住

メールによる返信