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/uugrnEmpfangen am 07.07.2007
Dieses Archiv wurde generiert von hypermail 2.2.0 : 07.07.2007 CEST