Schlechte Performance trotz Gigabit

Moinsen,

ich habe meinem Hauptrechner vorhin eine Gigabit-Karte gegönnt und diese mit meinem Homeserver (welcher ebenfalls Gigabit hat) verbunden. Leider sind die Werte recht enttäuschend:

Test mit netperf von Hauptrechner (Windows XP) > Server (FreeBSD 6.0 RELEASE)

Code:
TCP STREAM TEST to 192.168.2.2
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 65536   8192   8192    10.00     281.74

Test Server > Hauptrechner

Code:
TCP STREAM TEST to 192.168.2.1
Recv   Send    Send                      
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

  8192  32768  32768    10.00     506.57

Das Kopieren von Dateien ist vom Gefühl her noch langsamer. Boote ich auf dem BSD-Rechner allerdings mit einer Linux-Live-CD und teste dann mit netperf liege ich bei 700Mbit in beide Richtungen. Im Hauptrechner ist eine Intel Pro/1000 PT verbaut, im Server eine 3com 3c996b-t (Treiber bge).


Hat jemand dazu eine Idee?


TIA

Jan
 
Last edited:
Probiers doch mal mit FreeBSD auf dem Hauptrechner.

Außerdem schätze ich, das wahrscheinlich eine der Karten eine PCI ist, was der Performance nicht wirklich zuträglich sein dürfte.
 
Dieses Problem wurde in der stable@ Liste vor ein paar Wochen diskutiert. Da ich den Thread nur am Rande verfolgt habe, kann ich mich nicht an die Lösung erinnern.

Einfach mal die Listenarchive (ca. Jan - Mar 2006) durchsuchen. Ich denke, da gab es Kernel-Tunables, die etwas dazu beitragen könnten. Sofern der Grund in einem Bug lag, könntest Du es mal mit RELENG_6 probieren.
 
Deine Ergebnisse zeigen absolut gute Praxiswerte.
Du kannst sehr zufrieden sein damit.
 
walt said:
Deine Ergebnisse zeigen absolut gute Praxiswerte.
Du kannst sehr zufrieden sein damit.
Ich wäre mit 10 MBit auf 'ner 1Gbit Karte auch nicht zufrieden, da schafft sogar meine alte Win98 Kiste über eine 100Mbit Karte mehr.
 
Ich seh da nur "10^6bit/sec " was einen Durchsatz von 976.5625 MBit/sec (122 MB/sec) entspricht. Also ich weiss nicht was daran langsam sein sollte.
 
Aua, 10^6 bit/sec ist die Grössenangabe.

Er erreicht 281 bzw 506 von 1000 und fragt sich warum nur 1/4 der max geschwindigkeit erreicht wird.
 
Erstmal vielen Dank für die vielen Antworten.

Natürlich liegt der gemessene Durchsatz deutlich über Fast Ethernet, nur finde ich 280Mbit doch etwas enttäuschend, zumal bei dem Benchmark ja keine bremsenden Komponenten (Festplatte, etc) zum Tragen kommen. Daher hatte ich durchaus mit 700-800Mbit gerechnet (was unter Linux ja auch möglich ist, s.o.). Also scheint die Hardware nicht der bremsende Faktor zu sein.

Das Listenarchiv werde ich nochmal durchforschen.


MfG

Jan
 
knucklehead23 said:
Natürlich liegt der gemessene Durchsatz deutlich über Fast Ethernet, nur finde ich 280Mbit doch etwas enttäuschend, zumal bei dem Benchmark ja keine bremsenden Komponenten (Festplatte, etc) zum Tragen kommen. Daher hatte ich durchaus mit 700-800Mbit gerechnet (was unter Linux ja auch möglich ist, s.o.). Also scheint die Hardware nicht der bremsende Faktor zu sein.

Es gibt einige Möglichkeiten bezüglich FreeBSD Network Performance Tuning (PDF), es wäre klasse, wenn du sie mal ausprobieren und das Ergebnis hier mitteilen könntest. Bei mir hat bei ein paar uralten Realtek-NICs die Option "polling" sehr geholfen.
 
Erst einmal eine Frage vorab: wo hast du die PRO/1000 PT gekauft? Desktop oder Server-Version? Die Teile sind ja schon lange angekündigt, aber kaum erhältlich. Tests habe ich auch noch keine gesehen. Eventuelle Kinderkrankheiten würden mich interessieren. Die PCI-conventional PRO/1000 brauchten ja ganze vier (!) Revisionen, um richtig stabil zu laufen. Wie sind deine Erfahrungen damit so?

Und kannst du mal ein paar Logs (relevante Stellen, dmesg -a, pciconf -lv, ifconfig) posten? Dankeschön. :)

Dann ein paar Antworten. Ich habe schon eine ganze Weile privat Gigabit Ethernet laufen. Dass man wie von Ethernet und Fast Ethernet gewohnt das Netz sofort in die Sättigung fahren kann ist immer noch nicht üblich, da kannst du beruhigt sein. Aus dem Grunde wurden in der Vergangenheit Jumbo Frames benutzt -- weniger Overhead, bessere Ausnutzung der Möglichkeiten von Gigabit Ethernet.

Dann kann man an deinen Werten wieder schön sehen, dass FreeBSD deutlich effizienter arbeitet als Windows (XP): 280 Mbit/s von Windoze zu FreeBSD gegenüber 506 Mbit/s FreeBSD -> Windoze. Wenn die Hardware-Leistungsfähigkeit nicht sehr verschieden ist, dann ist das nicht so ungewöhnlich. Bei mir sieht's ähnlich aus von den Verhältnissen her (2x PRO/1000 MT, 1x FreeBSD6 im Server mit Celeron-M 360J und 1x Windows XP mit P4 2,26 GHz).

Beobachte einfach mal beispielsweise mit top bzw. dem Windows Task Manager die CPU/Interrupt-Auslastung beim testen. Limitieren dürfte wohl deine Windows-Kiste.
 
wenn ich mal kurz den thread hijacken darf:
habe wie oft empfohlen mal das auto-sensing der realtek bei mir ausgeschaltet und media standardmäßig auf 100baseTX mit mediaopt full-duplex gestellt.
jetzt blinkt erstens beim switch die FDX/COL LED permanent (während sie bei allen anderen angeschlossenen geräten einfach nur an ist), zweitens muss ich bei jedem starten des pcs einmal das lankabel aus dem switch ziehen und wieder reinstecken damit es überhaupt geht....
ist das normal? und was bedeutet die LED in der mitte (also FDX/COL)?
 
Auto-Negotiation funktioniert so nicht.

Wenn der Switch Auto-Negotiation (und Parallel Detection) macht (heute Standard), und du aber ein angeschlossenes Gerät fest auf einen Duplex- und Speedmodus einstellst kann der Switch nur mittels Parallel Detection erkennen, welcher Speed-Modus angesagt ist. Da Full-Duplex nicht erkennbar ist geht der Switch auf Halb-Duplex als Notmodus.

Wenn deine Karte jetzt was überträgt und gleichzeitig ein anderes Paket gerade reinkommt (geht ja, sie ist ja im Full-Duplex Modus) erkennt der Switch im Halb-Duplex Modus nur eine Kollision -- CSMA/CD. Deshalb blinkert auch deine Collision-LED.

Also mach' Autoneg einfach wieder an und die Probleme sind behoben. Der Sinn davon, ohne Probleme einfach alles manuell machen zu wollen, wenn die Geräte auch Eigenintelligenz haben und miteinander sprechen können hat sich mir noch nie erschlossen. Dadurch kommt dann sowas zustande wie eine abgeschaltete Hardware-Flusskontrolle bei Gigabit-Ethernet Verbindungen weil "das ja alle so machen". Und dann wundert man sich, wieso trotz Gigabit massig Pakete gedropped werden.
 
Endorphine said:
Erst einmal eine Frage vorab: wo hast du die PRO/1000 PT gekauft? Desktop oder Server-Version? Die Teile sind ja schon lange angekündigt, aber kaum erhältlich. Tests habe ich auch noch keine gesehen. Eventuelle Kinderkrankheiten würden mich interessieren. Die PCI-conventional PRO/1000 brauchten ja ganze vier (!) Revisionen, um richtig stabil zu laufen. Wie sind deine Erfahrungen damit so?

Ich habe die Karte durch zufall günstig bei E*ay geschossen (8,60€ ;-)). Anscheinend handelt es sich hierbei um eine Karte aus einem Intel-Vorführsystem. Es ist die Desktop-Version mit einem Port. Von der Stabilität her hatte ich bisher keine Probleme. Seit Version 6.1 wird die PRO/1000PT auch endlich von FreeBSD unerstützt.

Und kannst du mal ein paar Logs (relevante Stellen, dmesg -a, pciconf -lv, ifconfig) posten? Dankeschön. :)

Klar doch:

dmesg -a

Code:
em0: <Intel(R) PRO/1000 Network Connection Version - 3.2.18> port 0x9000-0x901f mem 0xf3020000-0xf303ffff,0xf3000000-0xf301ffff irq 19 at device 0.0 on pci4
em0: Ethernet address: 00:15:17:00:1d:9f

ifconfig:

Code:
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=b<RXCSUM,TXCSUM,VLAN_MTU>
	inet6 fe80::215:17ff:fe00:1d9f%em0 prefixlen 64 scopeid 0x3 
	inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255
	ether 00:15:17:00:1d:9f
	media: Ethernet autoselect (1000baseTX <full-duplex>)
	status: active

pciconf -lv:

Code:
em0@pci4:0:0:	class=0x020000 card=0x10938086 chip=0x107d8086 rev=0x06 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = 'PRO/1000 PT'
    class    = network
    subclass = ethernet

Dann ein paar Antworten. Ich habe schon eine ganze Weile privat Gigabit Ethernet laufen. Dass man wie von Ethernet und Fast Ethernet gewohnt das Netz sofort in die Sättigung fahren kann ist immer noch nicht üblich, da kannst du beruhigt sein. Aus dem Grunde wurden in der Vergangenheit Jumbo Frames benutzt -- weniger Overhead, bessere Ausnutzung der Möglichkeiten von Gigabit Ethernet.

Dann kann man an deinen Werten wieder schön sehen, dass FreeBSD deutlich effizienter arbeitet als Windows (XP): 280 Mbit/s von Windoze zu FreeBSD gegenüber 506 Mbit/s FreeBSD -> Windoze. Wenn die Hardware-Leistungsfähigkeit nicht sehr verschieden ist, dann ist das nicht so ungewöhnlich. Bei mir sieht's ähnlich aus von den Verhältnissen her (2x PRO/1000 MT, 1x FreeBSD6 im Server mit Celeron-M 360J und 1x Windows XP mit P4 2,26 GHz).

Bei mir läuft ein A64 3000+ im Windows-Rechner, auf der Gegenseite ein P3 866, mittlerweile mit einer Intel PRO/1000 GT. Die Werte haben sich gegenüber der 3com-Karte allerdings kaum verändert.

Beobachte einfach mal beispielsweise mit top bzw. dem Windows Task Manager die CPU/Interrupt-Auslastung beim testen. Limitieren dürfte wohl deine Windows-Kiste.

Die CPU-Last pendelt bei netperf zwischen 15 und 25%, ist also lange nicht am Anschlag. Mit netio ist das Ergebnis übrigens deutlich besser. Hier bekomme ich in beide Richtungen im Schnitt 65MB. Im Live-Betrieb sieht das Ganze aber leider recht düster aus, FTP dümpelt bei ~20MB.


MfG

Jan
 
Last edited:
Danke. :)

Ja, mit NetIO kann man sehr gut die mögliche Datenrate testen. Auf Layer-7 bleibt davon aber nicht unbedingt mehr so viel übrig. Gerade die Performance von SMB finde ich enttäuschend, wenn man dagegen die Resultate von NetIO oder FTP danebenstellt.

Aber wenigstens hat man bei Gigabit Ethernet die Situation, dass der Flaschenhals meistens nicht mehr im Netzwerk liegt, sondern in den beteiligten Rechnern.
 
Back
Top