Re: Oeffentliche FTP-Server per rsync spiegeln?

Autor: Alexander Holler <holler_at_ahsoftware.de>
Datum: Sat, 07 Jul 2007 16:57:23 +0200
Hallo,

Raphael Becker wrote:

>> Hier geht es ja hauptsächlich um die Vorbereitung der Datenübertragung. Ich 
>> denke wir sind uns einig dass die eigentliche Datenübertragung mit rsync, ftp 
>> und http ungefähr gleich schnell sein wird.

Da ich heute gerade den Artikel zu rsync im aktuellem LM gelesen habe, 
möchte ich mich doch nochmal zu Wort melden und nochmal Widerspruch 
einlegen. ;)

Wie ich schon gesagt habe, berechnet rsync für jeden übertragenen Block
neben einer primitiven Prüfsumme auch noch eine MD4.

Das mag bei 5 bis zu 10 Benutzern kein Problem darstellen, aber
irgendwann wird das zum Flaschenhals. Nicht nur weil die CPU da noch mit
beschäftigt ist die Prüfsumme zu berechnen, sondern auch weil dabei, im
besten Fall, jedes Byte von der Platte zur CPU zur Netzwerkkarte
geschleust wird. Bei einem HTTP- oder FTP-Server geht das (bei einem
gutem Server) per DMA blockweise direkt zur Netzwerkkarte. Bei einem
nicht so optimalem Server, macht das noch einen Zwischenschritt durch
das RAM. Aber auch da muss die CPU das dann nicht mehr anpacken. Und
dieses Prüfsummenberechnen macht sich dadurch nicht nur in der
eigentlichen Rechenzeit bemerkbar, sondern, da die CPU immer einige Zeit
mit den Daten handtiert, beeinflusst das dann auch die I/O-Performance.
Es passieren mehr Prozesswechsel, der Cache der Platte kommt ins
Stottern, der Kopf springt öfters usw.

Um Missverständnisse vorzubeugen, ich rede oben nur von _übertragenen_
Blöcken, d.h. Dateien die übertragen werden, weil sie sich geändert
haben oder beim Client nicht vorhanden sind.

Was sicher auch stark ins Gewicht fällt, ist, daß ein Benutzer mit einem
Rsync quasi mit einem Schlag einen Riesenauftrag beim Server abliefert.
Das mag das Netzwerk etwas entlassten, aber wenn nur 5 Leute
gleichzeitig so einen Auftrag abliefern, ist ein Rechner schon etliche
Zeit damit beschäftigt die ganzen Dateien dieser 5 Aufträge
abzuarbeiten. Bei HTTP oder FTP ist das nicht so. Im Vergleich zu rsync
tröpfeln da die Aufträge ein, d.h. es lassen sich vergleichsweise sehr
viel mehr gleichzeitige Benutzer bedienen. Mir ist es z.B. schon öfters
passiert, das mein rsync in einen timeout gelaufen ist, weil der Server
nicht schnell genug war. Das Resultat ist dann meist, das man das
gleiche nochmal probiert (und evtl. so schlau ist den Timeout
hochzusetzen). Das Resultat ist aber, daß öfters der gleichen Auftrag
mehrmals kommt, auch das ist nicht gerade schonend für einen Server.

Um das nochmal klarzustellen, ich rede hier nicht von Server für den
Hausgebrauch, sondern von Teilen, die eine Menge Benutzer zufrieden
stellen sollen.

Für den Hausgebrauch, zu Backupzwecken o.ä. ist rsync sicherlich eine
prima und überaus bequeme Sache.

Gruß,

Alexander





-- 
http://mailman.uugrn.org/mailman/listinfo/uugrn
Empfangen am 07.07.2007

Dieses Archiv wurde generiert von hypermail 2.2.0 : 07.07.2007 CEST