PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Transfergeschwindigkeit NFS



kreol
02.12.05, 20:11
Hi,

habe hier im 100mbit-Netz die Rechner A ('P2600', IP...24) und B ('P800', IP...22). Auf beiden befindet sich jeweils eine eigene /data Partition.
Allerdings sind die Transfergeschwindigkeiten unterschiedlich, je nachdem ob A auf B zugreift und sich Dateien holt, oder ob B die Dateien auf A 'schiebt'. Beide laufen unter SuSE 10.

Mounte ich A:/data auf B und kopiere eine Datei (Bsp. cp B:/data/foo A:/data/bar), habe ich eine Rate von ca. 200 KB/s *gähn*
Wenn ich B:/data auf A mounte und die gleiche Datei kopiere läuft das mit ca. 11MB/s, was das 100mbit ja auch hergeben sollte.

Rechner A (P2600)
/etc/fstab:
192.168.178.22:/data /p800/data nfs rw,rsize=8192,wsize=8192,noauto,users,sync,hard

/etc/exports:
/data/ 192.168.178.22(rw,sync)

Rechner B (P800)
/etc/fstab:
192.168.178.24:/data /p2600/data nfs rw,rsize=8192,wsize=8192,noauto,users,sync,soft

/etc/exports:
/data/ 192.168.178.24(rw,sync)

Gleiches Phänomen, wenn in der fstab von B 'hard' anstelle von ...soft eingetragen wird. Wobei ich ohnehin noch grübele, was da besser ist. K.A. warum ich das unterschiedlich eingetragen habe...

Ideen?


Kreol

jacky0815
03.12.05, 10:40
soft:
Wenn eine NFS-Dateioperation mit einem "Major Timeout" abgebrochen wird, soll ein I/O-Fehler an das aufrufende Programm zuruckgeliefert werden. Voreingestellt ist die endlose Wiederholung der Operation.

hard:
Wenn eine NFS-Dateioperation mit einem "Major Timeout" abgebrochen wird, soll die Meldung "server not responding" auf der Konsole ausgegeben werden und endlos weiter versucht werden, die Operation auszufuhren. Dies ist voreingestellt.

Hat also überhaupt nix mit der Transfergeschwindigkeit zu tun.

Ich würde zum einen mal mit den Optionen "tcp" und "async" probieren. Zweiteres macht aber eventuell das ganze unsicherer (vom Schreiben her).

kreol
06.12.05, 19:04
@jacky0815: Danke für Deine Erklärung/Vorschläge. Habe mich jetzt mal intensiver mit der Materie beschäftigt und bei den Rechnern gleichermaßen hard eingestellt. Dürfte aber wohl wirklich nichts mit der Übertragungsgeschwindigkeit zu tun haben.

Nachdem die manpage von nfs so eindringlich von der Verwendung von UDP anstelle von TCP abrät
Using NFS over UDP on high-speed links such as Gigabit can cause silent data corruption. ... It is therefore strongly recommended to use NFS over TCP where possible, since TCP does not perform fragmentation.lasse ich das mal auf TCP, auch wenn ich kein Gigabit-Netzwerk habe. Da ja beide Rechner insoweit gleich eingestellt sind, wäre es auch keine Erklärung für die unterschiedlichen Übertragungsgeschwindigkeiten.

Habe jetzt mal noch ein paar Dateien a jeweils ca. 30 MB hin- und hergeschoben und folgendes festgestellt (hoffentlich ist das jetzt nicht zu verworren ;)):

Ein auf Rechner A (P2600) ausgeführtes scp /data/foo P800:/data/bar bringt zwischen 5,7 und 7,1 MB/s, ein scp P800:/data/bar /data/foo leistet 7,5 MB/s.
Ausführung auf B (P800): scp /data/bar P2600:/data/foo liefert zwischen 7,1 und 10,1 MB/s, ein scp P2600:/data/foo /data/bar immerhin noch 6,3 MB/s.

Beim verschieben der Dateien via Konqueror mit Drag & Drop sind die Unterschiede auffälliger:

Konqueror auf P2600:
Kopieren von P2600:/data/foo auf P800:/data/bar (sozusagen ein 'push'): 201 KB/s
Kopieren von P800:/data/bar auf P2600:/data/foo (nenne ich mal 'pull'): 10 MB/s :)

Bei P800 sieht es ähnlich aus:
Kopieren von P800:/data/foo auf P2600:/data/bar ('push'): 200 KB/s
Kopieren von P2600:/data/bar auf P800:/data/foo ('pull'): 8 MB/s

Scheint also irgendwie mit dem Konqueror zusammen zu hängen...

Mit dieser Erkenntnis kann ich zwar leben, würde mich aber trotzdem interessieren, wie die unterschiedlichen Geschwindigkeiten zustande kommen...


Kreol