lakatusch
Goto Top

Gigabit Lan mit unterschiedlichen Geschwindigkeiten je nach Richtung

Da kann ich mir echt keinen Reim d'rauf machen...

Hallo alle zusammen!

Ich habe folgende zwei Rechner im LAN:

A:
Athlon CPU
Windows XP
Samsung HDD 1,5 TB

B:
Intel i7 920
Windows 7 Pro
Samsung HDD 1,5 TB

Die HDDs sind identisch.

Für die Tests wird eine ca. 4 GB große Datei verwendet.

Ich habe nun folgendes festgestellt.

1. Szenario:
Ich befinde mich auf Rechner B:
Ich gebe den Befehl kopieren ( von A auf B).
Hier werden die Daten mit einer Geschwindigkeit von ca. 55 MB /s kopiert.


2. Szenario:
Ich befinde mich auf Rechner B:
Nun möchte ich allerdings in die andere Richtung kopieren. (also von B nach A)
Hier erreiche ich nur eine Geschwindigkeit von ca. 21 MB / s


3. Szenario
Ich befinde mich auf Rechner A:
Ich möchte wieder Daten von B nach A kopieren.
Die Geschwindigkeit ist hierbei ca. 37 MB / s


Kann mir jemand erklären, warum ich hier so unterschiedliche Geschwindigkeiten habe?

Szenario 2 + 3 beinhaltet absolut die gleiche Aktion - sie wird nur von unterschiedlichen Rechnern ausgeführt.

Ich bin echt überfragt, warum die Geschwindigkeit so unterschiedlich ist.

Vielen Dank für eure Hilfe.

VG
Daniel

Content-ID: 127389

Url: https://administrator.de/contentid/127389

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

wiesi200
wiesi200 18.10.2009 um 23:56:50 Uhr
Goto Top
Du verwendest unterschiedliche Rechner. Bzw die Arbeit machen unterschiedliche Rechner.
Auserdem selbst auf ein und der selben Platte ist nicht mal gesagt das das du die selben Geschwindigkeiten zusammen kriegst. Je nach dem wo die Daten liegen/hin kommen und wie sie fragmentiert sind.
DerWoWusste
DerWoWusste 19.10.2009 um 00:51:38 Uhr
Goto Top
Das könnte alles mit Windows 7 zu tun haben, Vista zeigte auch schon solche Phänomene. Mach ein paar Tests:
-Miss zunächst mal mit netio http://www.ars.de/ars/ars.nsf/docs/netio , was die Leitung hergibt.
-Nutze zum kopieren einmal Teracopy auf W7.
-Stell auf W7 einmal das Autotuninng der Netzwerkkarte aus, siehe http://www.speedguide.net/faq_in_q.php?qid=247
Lakatusch
Lakatusch 19.10.2009 um 05:31:09 Uhr
Goto Top
Netio Test.

1. Test.
System A ist Server
B ist Client

NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

TCP connection established.
Packet size 1k bytes: 113106 KByte/s Tx, 80425 KByte/s Rx.
Packet size 2k bytes: 113223 KByte/s Tx, 90628 KByte/s Rx.
Packet size 4k bytes: 115211 KByte/s Tx, 114894 KByte/s Rx.
Packet size 8k bytes: 115154 KByte/s Tx, 115085 KByte/s Rx.
Packet size 16k bytes: 115333 KByte/s Tx, 114872 KByte/s Rx.
Packet size 32k bytes: 115745 KByte/s Tx, 115439 KByte/s Rx.


2. Test
System B ist Server
NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

TCP connection established.
Packet size 1k bytes: 82501 KByte/s Tx, 108913 KByte/s Rx.
Packet size 2k bytes: 89699 KByte/s Tx, 112675 KByte/s Rx.
Packet size 4k bytes: 114248 KByte/s Tx, 114280 KByte/s Rx.
Packet size 8k bytes: 114024 KByte/s Tx, 114278 KByte/s Rx.
Packet size 16k bytes: 114399 KByte/s Tx, 114632 KByte/s Rx.
Packet size 32k bytes: 114092 KByte/s Tx, 115255 KByte/s Rx.

Terracopy
Auf System B ausgeführt:
Daten von A nach B
42 MB / s

Auf System B ausgeführt:
Daten von B nach A
schwankend: 10 - 20 MB

System B
Wenn ich in Terracopy auf Test klicke, zeigt er 100 MB / s an.

Auf System A ausgeführt:
Wenn ich in Terracopy auf Test klicke, zeigt er 100 MB / s an.

Auf System A ausgeführt:
Daten von A nach B
schwankend 16 - 40 MB / s

weitere Tests folgen.

VG
Daniel
maretz
maretz 19.10.2009 um 07:42:06 Uhr
Goto Top
Ich habe nen Apfel und ne Birne... Lege ich beide auf ne Schräge fläche rollen die unterschiedlich schnell...

Ok, mal ernsthaft:

Du hast
a) verschiedene Rechner
b) unterschiedliche Betriebssysteme
c) mit etwas Glück unterschiedliche Mengen an Speicher

und versuchst jetzt was zu vergleichen?!?

Erstmal: Eine Festplatte wird idR. IMMER schneller Lesen als schreiben können. Daher wirst du schonmal nie dieselbe Geschwindigkeit in beide Richtungen bekommen können.
Jetzt kommt dazu: Was läuft im Hintergrund des Rechners noch so? (Und sag jetzt ja nich "nichts", sonst gibts auffe Fingers! Windows hat allein schon unzählige Hintergrundprozesse). War z.B. bei jeder Aktion auch immer nen User angemeldet? (Alleine der angemeldete User belegt schon einiges an Resourcen!).

Das könnte jetzt noch einige Zeit so weitergehen -> kurz: Wenn du schon so einen Test machst dann brauchst du identische Hardware. Und selbst dann ist der Test noch eher nen sehr grobes Ergebnis (z.B. spielt auch der Datencache eine Rolle - lese ich die Datei einmal ein und habe die im Datencache wird die Geschwindigkeit beim nächsten Versuch ggf. extrem steigen...). Dann kommt dazu wie groß die Datei selbst ist, wie dein Netzwerk eingestellt ist (FrameSize), was du für Störungen ggf. auf der Leitung hast (lege die Leitung mal hinter richtig großen Maschinen und guck mal was dein Fehlerprotokoll sagt wenn die Dinger anlaufen...). Und wenn du ganz viel Glück hast findest du sogar noch optimierte Treiber für ein OS -> welche z.B. erlauben etwas mehr RAM als Cache zu nehmen usw... Somit ist ein Test so wie du ihn durchführst zimlich sinnfrei.
Lakatusch
Lakatusch 19.10.2009 um 07:50:59 Uhr
Goto Top
Hallo!
Ich glaube wir driften hier langsam am Thema vorbei.

Ich will eigentlich maximale Performance beim Kopieren von B nach A.

Nun ist es aber so, das wenn ich auf Rechner B bin und die Daten nach A SCHIEBE (von B aus), habe ich nur einen Datentransfer von 21 MB /s.

Wenn ich aber nun auf Rechner A bin und die Daten nach A ZIEHE (auch von B aus), habe ich einen Durchsatz von 37 MB / s.

Die Daten fließen hierbei beides mal in die gleiche Richtung.
Und beides mal muss System A die Daten auf die HDD schreiben.

Hier stellt sich für mich die Frage, warum SCHIEBEN langsamer ist als ZIEHEN?
Die Festplatte die schreiben muss ist ja in beiden Fällen die gleiche!

VG
Daniel
maretz
maretz 19.10.2009 um 07:56:39 Uhr
Goto Top
Ganz einfach: Wenn du daten SCHIEBST ist das für den Zielrechner ein Hintergrund-Prozess. Und wie wir ja alle wissen ist Windows (in der Client-Version) darauf ausgelegt die VORDERGRUND-Prozesse zu beschleunigen (macht auch sinn). Wenn du daten ZIEHST dann ist das ein Vordergrund-Prozess (Aktiv vom User gestartet). Damit stehen dem Prozess mehr Resourcen zur Verfügung -> er arbeitet schneller...
Lakatusch
Lakatusch 19.10.2009 um 08:05:05 Uhr
Goto Top
Das klingt logisch.

Gibt es eine Möglichkeit diesem Hintergrundprozess mehr Ressourcen zuordnen zu können?
Dies müsste dann auf dem XP System geschehen.

Oder evtl. alle Hintergrundprozesse?
(Obwohl diese Möglichkeit würde ich erst einmal testen wollen)

Allerdings habe ich mir die CPU Auslastung angesehen. Beim schreibendem System ist die CPU gerade mal mit 20 % ausgelastet.

VG
Daniel
maretz
maretz 19.10.2009 um 10:33:41 Uhr
Goto Top
Das ganze hat mit deiner CPU-Leistung recht wenig zu tun. Deine CPU arbeitet nach einem Zeitscheiben-Modell. D.h. JEDER Prozess bekommt eine gewisse CPU-Zeit (Interrupts lasse ich jetzt mal weg). Dabei bekommt meinetwegen ein vordergrund-Prozess 20 ms, ein Hintergrund 10 ms (nein, nicht wirklich annähernd soviel aber ich will es mal einfach machen). D.h. dein HG-Prozess hat genau 10 ms Zeit um seine Daten auf die Platte zu packen. Danach kommt nen anderer Prozess dran - und der darf 10/20 ms rumtoben... WAS der mit seiner Zeit macht ist dem OS zimlich latte (es sei denn er legt sich selbst wieder schlafen...)

Du kannst Windows recht einfach auf HG-Prozesse einstellen -> Rechtsklick auf Arbeitsplatz, Eigenschaften und dann mal die Register und untermenüs durchgucken.. Aber: Bei einem System an dem auch Leute arbeiten macht das wenig sinn - da du ja mehrere HG-Prozesse hast/haben kannst... Schon schlecht wenn plötzlich Excel oder das Spiel weniger Resourcen bekommt als dein Datentransfer (Beim Server ist das was anderes - hier laufen idR. viele HG-Prozesse aber selten Dinge bei denen der User nen Programm manuell startet...)
aqui
aqui 19.10.2009 um 15:12:32 Uhr
Goto Top
@Lakatusch
Hast du in Bezug auf den XP Rechner das hier gelesen:
http://www.psc.edu/networking/projects/tcptune/
http://www.heise.de/netze/artikel/TCP-IP-Tuning-221778.html
Stichwort Windows Size... ??
Wenn testen dann immer mit IPerf oder NetIO, denn mit Windows CIFS rumzukopieren ist unsinnig, da du dort viel zu viele andere Komponenten hats du das Ergebnis beeinflussen !! Mal ganz abgesehen von der Tatsache das CIFS generell durch zu kleine Pakete eine schlechte Performance hat !
Spannend wäre noch deine NIC HW gewesen zu der du leider gar nichts schreibst.. face-sad
Bei billigen Relatek Chips geschieht ein großer Teil des Paket Handlings in der System CPU. Solche Karten sind logischerweise generell schlechter in der Gesamtperformance..