[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Oeffentliche FTP-Server per rsync spiegeln?
[Thread Prev] | [Thread Next]
- Subject: Re: Oeffentliche FTP-Server per rsync spiegeln?
- From: Alexander Holler <holler@xxxxxxxxxxxxx>
- Date: Sat, 07 Jul 2007 16:57:23 +0200
- To: uugrn@xxxxxxxxxxxxxxx
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