Content
Mini HowTo zur Netzwerkgeschwindigkeit
Frage:
Ich habe eine Platte im fli4l/EISFAIR. Mein Problem ist, dass es ewig dauert etwas auf die Platte zu kopieren bzw. etwas runter zu laden. Woran kann das liegen? Ich komme höchstens auf x Mbit!
Dies ist eine typische Frage, bei der eigentlich alle notwendigen Angaben
fehlen. Es kann an allem liegen: Zu langsame Hardware,
falsche Netzwerktopologie, falsche Konfiguration des Servers...
Also beginnen wir mal mit der Analyse:
* Überprüfen des Power-Management
Bei eingeschaltetem Power-Management kommt es immer wieder zu den verschiedensten Problemen (Performance-Einbrüche bis zu Abstürzen).
Deshalb als erstes im BIOS Überprüfen, ob das Power-Management eingeschaltet ist und ggf. dort ausschalten.
* Prüfen der Netzwerkgeschwindigkeit
Das geht am einfachsten mit dem Programm netio
Die aktuelle Version kann unter:
ftp://ftp.leo.org/.mntpts/2/pub/comp/os/os2/leo/systools/
heruntergeladen werden (z.B. netio117.zip).
Das ZIP-Archiv enthält sowohl eine Linux-, als auch eine Windows-Version. Als Ergebnis gibt es dann einen solchen Output (100MBit-Netzwerk):
NETIO - Network Throughput Benchmark, Version 1.17
(C) 1997-2001 Kai Uwe RommelTCP/IP connection established.
Packet size 1 KByte: 7699 KByte/s Tx, 11299 KByte/s Rx.
Packet size 2 KByte: 9054 KByte/s Tx, 11527 KByte/s Rx.
Packet size 4 KByte: 9051 KByte/s Tx, 11538 KByte/s Rx.
Packet size 8 KByte: 9153 KByte/s Tx, 11536 KByte/s Rx.
Packet size 16 KByte: 11148 KByte/s Tx, 11522 KByte/s Rx.
Packet size 32 KByte: 11153 KByte/s Tx, 11495 KByte/s Rx.
Done.
Diese Werte liegen bei maximal 90% der Nominaldatenrate des Netzwerks. Der Rest geht für Frame-Header usw. drauf.
11.148 KByte * 8 Bit / 1024 = 87 MBit
Dieser Wert hier ist recht gut und deutet auf eine Korrekte Funtion des Netzwerks hin.
* Prüfen der Festplattengeschwindigkeit
Dazu liest man am einfachsten eine große Datei (z.B. CD-Image) von der Festplatte und stoppt die benötigte Zeit:
date; cp [datei] /dev/null; date
Als Ausgabe gibt das dann (bei 700MB):
Wed Jul 23 21:16:12 CEST 2003
Wed Jul 23 21:16:30 CEST 2003
700 MB / 18 sec = 38,9 MByte/s = 39.819 KByte/s
Auch dieser Wert deutet auf eine korrekte Funktion hin.
* Prüfen der CPU/Speicher-Auslastung:
Die CPU-Auslastung kann mit "cat /proc/loadavg" angezeigt werden, die Ausgabe lautet dann etwa:
0.04 0.08 0.08 2/17 1150
! ! ! Durchschnittlich xxx Prozesse in der Queue
! ! !----------- über die letzten 15 Minuten
! !---------------- über die letzten 5 Minuten
!--------------------- über die letzte 1 Minute
Die erste Zahl gibt also an, dass über die letzte Minute durchschnittlich 0,04 laufbereite Prozesse in der Queue standen und warten mussten. Die CPU-Auslastung ist also nicht besonders hoch.
Alternative Möglichkeiten zur Überprüfung der CPU-Auslastung sind imonc (fli4l) oder top (EISFAIR, fli4l mit OPT_TOP).
cat /proc/meminfo zeigt Statistiken über die Speicherausnutzung an. Wichtig sind die Anzeigen des freien Speichers (MemFree) und des für caching verwendeten Speichers (Cached) sowie des Swap.
Tendenziell sollte Swap möglichst klein sein, und die Summe aus Free und Cached möglichst groß (Linux nutzt nach und nach den gesamten freien Speicher für Caching; bei mir sind das mehr als 75%).
* Hardwaredefekt/Hardwareinkompatibilitäten
Natürlich kann eine der verwendeten Komponenten einen Defekt haben oder mit einer anderen Komponente inkompatibel sein.
Aber diesen Fall behandle ich hier nicht!
In diesem Fall hilft einfach der Austauch der betroffenen Komponenten.
* Netzwerk zu langsam?
Wenn nun die Netzwerkperformance deutlich unter den obigen Werten liegt,
kann das viele Ursachen haben. Die häufigsten
dabei sind wohl:
- Verwendung eines Hubs
PC1 ----- Hub PC2 ------! !
PC3 --------!
Falls im Netzwerk ein Hub anstatt eines Switches verwendet wird müssen sich die angeschlossenen Geräte die verfügbare Bandbreite teilen und es ist kein Full-Duplex-Betrieb möglich.
Überprüfung: Durchführung des Netzwerk-Tests mit einem
gekreuzten Kabel oder einem Switch bringt
deutlich höhere Performance.
Lösung: Verwendung eines Switches
- Verwendung eines Hubs und eines 10MBit Geräts
PC1 ----- Hub PC2 ------! ! ! DSL --------! Modem
Wenn ein 10MBit-Gerät (z.B. das DSL-Modem) am Hub hängt, wird das gesamte Netzwerk mit 10MBit betrieben!
Überprüfung: Durchführung des Netzwerk-Tests mit einem gekreuzten Kabel oder einem Switch bringt deutlich höhere Performance.
Lösung 1: Verwendung eines Switches
(Aus welchen weiteren Gründen diese Konfiguration (DSL-Modem direkt im LAN) auch nicht verwendet werden sollte, werde ich bei Gelegenheit mal in einer weiteren FAQ/HowTo beschreiben)
Lösung 2: Verwendung einer 2. Netzwerkkarte für das DSL-Modem
(angenommen PC2 ist der fli4l Router)
PC1 ----- Hub PC2 ------! ! ! DSL Modem
- Verwendung einer langsamen Netzwerkkarte mit einer langsamen CPU
Eine preisgünstige Netzwerkkarte z.B. mit Realtek 8139B belastet die CPU erheblich mehr, als eine 3com 905B. Wenn im PC jetzt auch noch eine langsame CPU ist, oder diese hoch ausgelastet ist, so kann dies die Netzwerkperformance negativ beeinflussen.
Überprüfung: Überprüfung der CPU-Auslastung (siehe
oben) Lösung: Verwendung einer schnelleren CPU und/oder einer
hochwertigeren Netzwerkkarte
- Fehlerhafte QoS-Einstellungen (falls installiert!)
Mittels der QoS (Quality of Service) Einstellunen kann die frei verfügbare Bandbreite beschränkt werden.
Überprüfung: Überprüfung der QoS-Einstellungen auf
dem fli4l/EISFAIR (OPT_QoS) und auf dem Client [1]
Lösung: Korrektur der QoS-Einstellungen
* Festplatte zu langsam? (Festplatte läuft nur im PIO-Mode)
PIO-0 => 3,3 MByte/sec = 26,4 MBit/sec
PlO-1 => 5,2 MByte/sec = 41,6 MBit/sec
PlO-2 => 8,3 MByte/sec = 66,4 MBit/sec
PlO-3 => 11,1 MByte/sec = 88,8 MBit/sec
PlO-4 => 16,6 MByte/sec = 132,8 MBit/sec
(Neben der obigen maximalen Datenrate pro PIO-IDE-Kanal ist auch zu beachten, dass der Betrieb einer Festplatte im PIO-Mode eine sehr hohe CPU-Last erzeugt!)
- (alte) Festplatte ist so langsam bzw. kann nur den PIO-Mode
Lösung: Verwendung einer schnelleren Festplatte
- IDE-Controller (auf dem Mainboard) kann nur den PIO-Mode
Überprüfung: Handbuch des Mainboards
Lösung: Verwendung eines anderen Controllers/Mainboards
- Festplatte läuft derzeit nur im PIO-Mode
Lösung: Aktivierung des DMA-Modus mit hdparm im OPT_HD (fli4l)
bzw. Paket hdtune (EISFAIR)
* Festplatte ist im sleep mode
Überprüfung: Der erste Zugriff auf eine kleine Datei dauert sehr lange, jeder weitere Zugriff auf andere Dateien geht dann aber wieder sehr schnell.
Lösung: Deaktivierung des sleep mode mit hdparm im OPT_HD (fli4l) bzw. Paket hdtune (EISFAIR)
PS. Bei Fragen zu diesem Thema in den Newsgroups _UNBEDINGT_ die Ergebnisse der Performance-Tests sowie die Netztopologie und die verwendete Hardware und Software (OPTs, Packages) mit ins Posting setzen!
[1] QoS ist unter Windows XP bei den Gruppenrichtlinien einzustellen:
->Start->Ausführen->gpedit.msc dann unter
Maximilian Pasternak, Oktober 2003