Hallo,
vielen Dank für die vielen Antworten. Ich habe jetzt mal systematisch gearbeitet.
Erstmal habe ich die Blocksize für das Schreiben auf den Stick ermittelt. Dafür habe ich „dd oflag=direct bs=<blocksize>“ verwendet und immer 512MB geschrieben. Ich hoffe, daß ich mit diesem „direct“. (Was mir gerade auffällt: ich habe das nicht mit Root-Rechten gemacht. Darf „luser“ auch Direct I/O machen?)
http://www.schlittermann.de/misc/stick-blocksize.png
64k *scheint* eine gute Blockgröße zu sein.
[dd oflag=direct if=/dev/zero of=/dev/sdb bs=64k count=8192] => 3.8 MB/s [dd oflag=direct if=/dev/zero of=/dev/sdb bs=256k count=2048] => 3.7 MB/s [dd oflag=direct if=/dev/zero of=/dev/sdb bs=32k count=16384] => 3.5 MB/s [dd oflag=direct if=/dev/zero of=/dev/sdb bs=128k count=4096] => 3.5 MB/s [dd oflag=direct if=/dev/zero of=/dev/sdb bs=16k count=32768] => 2.8 MB/s [dd oflag=direct if=/dev/zero of=/dev/sdb bs=8k count=65536] => 2.1 MB/s [dd oflag=direct if=/dev/zero of=/dev/sdb bs=4k count=131072] => 1.3 MB/s
Für die folgenden Versuche hatte ich trotzdem mit 128k gearbeitet, weil ... ich hatte mich verguckt.
Nun die Geschwindigkeiten im Einzelnen, einmal über der Zeit, und einmal über die Menge der geschriebenen Daten.
http://www.schlittermann.de/misc/speed-size.png http://www.schlittermann.de/misc/speed-time.png
Gearbeitet wurde immer mit „dd bs=128k“, manchmal direkt auf den Stick, manchmal in ein Filesystem, welches auf dem Stick war. Wenn es in ein Filesystem ging, dann war es ohne irgendwelche Besonderheiten gemountet.
Die 128k Blockgröße hatte ich vorher als die ermittelt, bei der ein „dd“ auf den Stick am schnellsten war.
Ca. 3MB/s scheint dann immer die „Dauerleistung“ zu sein beim 8GB Stick. Hätte ich mir besser vorgestellt.
Bei einem baugleichen Stick mit 16 GB (statt 8GB) erreiche ich grob das doppelte. Das deutet auf interne Parallelisierung. Aber da kenne ich mich nicht wirklich aus.
Warum das rsync so langsam wird, muß ich noch ermitteln.