[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Oeffentliche FTP-Server per rsync spiegeln?


Hallo,

Raphael Becker wrote:

>> Hier geht es ja hauptsaechlich um die Vorbereitung der Datenuebertragung. Ich 
>> denke wir sind uns einig dass die eigentliche Datenuebertragung mit rsync, ftp 
>> und http ungefaehr gleich schnell sein wird.

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

Wie ich schon gesagt habe, berechnet rsync fuer jeden uebertragenen Block
neben einer primitiven Pruefsumme 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
beschaeftigt ist die Pruefsumme 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 Pruefsummenberechnen 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 oefters usw.

Um Missverstaendnisse vorzubeugen, ich rede oben nur von _uebertragenen_
Bloecken, d.h. Dateien die uebertragen werden, weil sie sich geaendert
haben oder beim Client nicht vorhanden sind.

Was sicher auch stark ins Gewicht faellt, ist, dass 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 beschaeftigt die ganzen Dateien dieser 5 Auftraege
abzuarbeiten. Bei HTTP oder FTP ist das nicht so. Im Vergleich zu rsync
troepfeln da die Auftraege ein, d.h. es lassen sich vergleichsweise sehr
viel mehr gleichzeitige Benutzer bedienen. Mir ist es z.B. schon oefters
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, dass oefters der gleichen Auftrag
mehrmals kommt, auch das ist nicht gerade schonend fuer einen Server.

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

Fuer den Hausgebrauch, zu Backupzwecken o.ae. ist rsync sicherlich eine
prima und ueberaus bequeme Sache.

Gruss,

Alexander





-- 
http://mailman.uugrn.org/mailman/listinfo/uugrn