Netzwerk (mal wieder) zu langsam

From: Patrick Hess <patrick_hess(at)t-online.de>
Date: Wed, 3 Dec 2003 14:49:29 +0100

Hallo Liste,

das leidige Thema mal wieder. Ich habe nun den Server gewechselt,
weil ich die bisher dafür verwendete CAD-Workstation anderweitig
gebrauchen kann.

Nun steht hier ein Siemens-Nixdorf Primergy 351 rum. Als Mainboard
ist das D963 Sockel 5/7-Dual-Board verbaut. Darauf werkelt ein
Pentium MMX 200 (was hat MMX eigentlich in einem Server verloren?).
Den RAM habe ich auf 8 * 64 MB = 512 MB PC66 EDO-RAM ausgebaut. Da
der onboard-IDE Schrott ist, habe ich mir den Promise UltraDMA 100
TX2 PCI-IDE-Controller zugelegt. Als Festplatte ist eine Barracuda
im Einsatz, die sicher nicht zu den langsamsten Vertretern gehört:

        ad4: 76319MB <ST380011A> [155061/16/63] at ata2-master UDMA100
        
Södele, kurz zum bisherigen Server: PIII 450, 768 MB PC100, Samsung-
Platte im UDMA33-Modus. Auslesen einer Datei von Festplatte brachte
27 MB/s, der Client holte über NFS knapp 6 MB/s raus. Bei Interesse
auch genauer nachzulesen unter
http://univ.dyndns.org/freebsd/search-de/questions/03/msg07541.html

Im damaligen Thread wurde ein Wert von 6 MB/s als ordentlich
befunden. Davon kann ich mit dem "neuen" Server aber nur träumen...

Zuerst habe ich auf dem Server eine 128 MB große Datei erstellt:
        
        server:/tmp/user > dd if=/dev/zero of=TEST bs=1m count=128
        128+0 records in
        128+0 records out
        134217728 bytes transferred in 11.771698 secs (11401730 bytes/sec)
        
Ich habe es ihm also wirklich einfach gemacht, der vorherige Server
wurde immerhin mit einer 1 GB großen Datei getestet.

        server:/tmp/user > time cat TEST >/dev/null
        real 0m5.354s
        user 0m0.070s
        sys 0m5.172s

Das macht dann bei dieser vergleichsweise kleinen Datei, die wohl
vollständig aus dem Speicher kommen dürfte, etwa 24 MB/s. Ein
zweiter Aufruf von cat bringt 25 MB/s Durchsatz, also kein
wirklicher Unterschied.

Nun habe ich das ganze vom Client aus gemacht. Das ist ein PIII 450
mit 512 MB PC100 ECC SD-RAM. Beide Rechner sind mit Intel Ether
Express Pro 100 PCI bestückt, arbeiten im Full-Duplex-Modus und
sind über einen Switch mit einander verbunden.

        desk9:~ » time cat /tmp/user/TEST >/dev/null
        real 0m36.048s
        user 0m0.070s
        sys 0m2.653s

Hier holt der Client über NFS knapp 3,5 MB/s raus. Für ein 100 MBit-
Netzwerk, in dem sich zu diesem Zeitpunkt keine anderen Rechner
befanden, halte ich das für entschieden zu wenig. Im damaligen
Thread hat Oliver Fromme berichtet, daß selbst sein P166 auf 6 MB/s
kommt.

Der Server hat während der Übertragung zumindest noch Luft:

        CPU states: 0.4% user, 0.0% nice, 46.2% system,
                     6.9% interrupt, 46.5% idle
        Mem: 19M Active, 373M Inact, 88M Wired, 19M Cache,
             61M Buf, 2244K Free
        Swap: 512M Total, 52K Used, 512M Free
        load averages: 0.31, 0.14, 0.06
        
Das sind so etwa die Mittelwerte, die top anzeigt. Über die Zeit der
Übertragung ändern sich diese Werte nur geringfügig.

Wenn ich die Datei nun ein zweites und drittes Mal auf dem Client
ausgeben lasse, komme ich auf 122 MB/s! Klar, der Cache des Clients
mag schnell sein, aber wie schafft der diesen Durchsatz bei PC100
SD-RAM? Irgendwas stimmt hier nicht: Das Netzwerk ist unerklärlich
langsam und der RAM des Clients unerklärlich schnell.

Im damaligen Thread bekam ich von Oliver Fromme den Tipp, NFS/TCP zu
versuchen. Also habe ich das NFS-Share mittels "-o tcp" erneut
gemountet und wieder vom Client ausgelesen:

        1. Versuch: 3,8 MB/s
        weitere Versuche: 121 MB/s
        
Die 300 KB/s Zuwachs habe ich auch beim vorherigen Server schon
festgestellt, da hat sich nichts verändert.

Tja, was mache ich jetzt? Ich meine, das sind hier nicht nur
irgendwelche Zahlen. Man merkt diesen Unterschied im Alltagsbetrieb
schon deutlich. Die Netzinstallation von StarOffice z.B. braucht
nun gut zehn Sekunden länger zum Starten. Brennen von auf dem Server
liegenden ISO-Images mit dem Brenner des Clients dauert gar mehr als
60 Sekunden länger, weil Burn Proof ständig die Brenngeschwindigkeit
drosseln muß.

Gibt es etwas, was ich bei einer alten 586er Gurke zu beachten habe,
damit die ausreichende Netzperformance liefert? Ich denke nicht, daß
man solche Hardware schon abschreiben muß. Bei anderen Leuten
liefert sie ja auch vernünftige Werte. Irgendwas habe ich verkehrt
gemacht und ich wäre dankbar, wenn mir jemand einen Tipp geben kann.

Gruß,
Patrick Hess

To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 03 Dec 2003 - 14:53:14 CET

search this site