Das ist aber durchaus logisch ... weil es zusätzlichen Overhead beim Schreiben (und dem damit untrennbar verbundenen Verwalten des zugrundeliegenden Dateisystems) bereits im OS gibt - angefangen bei der Verwaltung der "free blocks", die aus einer entsprechenden Liste "ausgetragen" werden und an die bereits einer Datei zugeordneten Blöcke angehangen werden müssen. Dann kommen noch sogenannte "write barriers" dazu, das sind Punkte, an denen alle Daten erst einmal in der richtigen Abfolge geschrieben sein müssen, damit die Integrität der Dateisystemstrukturen gewahrt bleibt (selbst wenn das aus Sicht des Durchsatzes schädlich ist, weil erst einmal zusätzliche Positionierungen des Head-Assembly notwendig werden) und dann kommen bei moderneren Dateisystemen noch die zusätzlichen Zugriffe beim "journaling" hinzu.
Beim Schreiben sind also wesentlich mehr Operationen auszuführen als beim Lesen von Daten ... schon das führt i.d.R. zu einem geringeren (effektiven) Durchsatz, den man natürlich mit irgendwelchen Meßprogrammen, die nur die reine Datenübertragungsleistung messen, gar nicht in die Überlegungen einbezieht. Erschwerend kommt bei einer FRITZ!Box noch der insgesamt recht geringe Arbeitsspeicher hinzu, der eben auch die Anzahl der möglichen Puffer für Dateisystemzugriffe begrenzt und damit schon das Auflisten einer umfangreicheren Dateisammlung (145.713 Dateien auf einer WD-HDD) zu einer Sache von Minuten statt Sekunden macht.
Außerdem hängt die Schreibgeschwindigkeit noch von vielen anderen (hier unbekannten) Faktoren ab ... bei Flash-Speicher ist das Schreiben bekanntermaßen wesentlich langsamer und auch bei rotierenden HDDs gibt es limitierende Faktoren, die hier zutreffen könnten. Abhängig vom Aufbau der Hardware - das geht mit einem "dual head" los, bei dem Schreib- und Lesekopf nicht getrennt ausgeführt sind und damit eine Verifikation der geschriebenen Daten erst bei der nächsten Umdrehung erfolgen kann - kann bereits die (autonome) Verifikation der geschriebenen Daten durch die HDD zu einer wesentlich längeren Dauer eines Schreibkommandos (im Vergleich zu einem reinen Lesekommando) führen (eine Umdrehung dauert knapp über 11 ms bei 5.400/min).
Ob am Ende die Geschwindigkeit des Mediums oder die CPU das begrenzende Element ist, hängt sicherlich auch vom Einzelfall ab ... da, wo Flash-Speicher im USB-Stick seine Vorteile beim Lesen ausspielen kann (keine Positionierung notwendig, damit sehr geringe Latenz), da wandelt sich das beim Schreiben häufig ins Gegenteil, weil wohl die meisten USB-Sticks beim Schreiben wesentlich langsamer sind. Nicht zuletzt spielt eben auch das Zugriffsmuster eine wesentliche Rolle und über den Einfluß des richtigen Dateisystems auf den zu erzielenden Durchsatz haben wir auch schon oft genug "geredet".
Außerdem stimmt das mit den 30 MB/s beim Lesen auch nicht so ganz ... es hängt eben immer von der Hardware ab.
Bei mir gibt es eine 1 TB-HDD im USB3-Modus am hinteren Anschluß einer 7490 (ext4-Dateisystem, 4 KB-Blöcke) und wenn ich dort einfach Daten lesen lasse ("cat irgendwas >/dev/null"), dann kriege ich folgende Werte von einer (ansonsten weitgehend unbeschäftigten) 7490:
Code:
$ [COLOR="#0000FF"][B]iostat -cdzm 3 20[/B][/COLOR]
Linux 3.10.73 (FB7490) 03/14/17 _mips_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.23 0.17 15.88 5.23 0.00 71.49
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mtdblock3 0.00 0.00 0.00 0 0
sda 58.96 7.32 0.00 6669 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.85 49.49 0.00 49.66
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
avg-cpu: %user %nice %system %iowait %steal %idle
0.36 0.00 27.36 31.70 0.00 40.58
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 227.33 28.42 0.00 85 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.73 0.00 46.28 19.24 0.00 33.76
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 365.78 45.72 0.00 137 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.38 0.00 [COLOR="#008000"]66.73[/COLOR] 5.64 0.00 27.26
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 511.33 [COLOR="#FF0000"]63.92[/COLOR] 0.00 191 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.19 0.00 65.40 6.46 0.00 27.95
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 500.66 62.58 0.00 188 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 66.42 6.46 0.00 26.57
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 506.00 63.25 0.00 189 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.85 0.00 1.02 49.15 0.00 48.98
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 6.98 0.87 0.00 2 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.18 0.00 61.71 8.89 0.00 29.22
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 471.00 58.84 0.00 176 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 66.97 5.66 0.00 26.82
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 508.31 63.54 0.00 191 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.53 0.00 66.73 4.78 0.00 27.96
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 498.67 62.33 0.00 187 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.75 0.00 65.98 6.58 0.00 26.69
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 506.31 63.29 0.00 190 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.73 0.00 47.18 18.21 0.00 33.88
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 373.00 46.63 0.00 139 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.35 0.00 37.02 25.79 0.00 36.84
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 279.73 34.97 0.00 105 0
avg-cpu: %user %nice %system %iowait %steal %idle
1.49 0.00 65.92 4.66 0.00 27.93
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 508.67 63.56 0.00 190 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.18 0.00 67.10 5.33 0.00 27.39
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 506.64 63.33 0.00 190 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.37 0.18 64.70 6.28 0.00 28.47
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 493.69 61.71 0.00 185 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 65.43 5.55 0.00 28.47
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 502.67 62.83 0.00 188 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.37 0.18 65.56 4.79 0.00 29.10
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 501.00 62.62 0.00 188 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.18 0.00 33.75 27.89 0.00 38.19
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 264.67 33.08 0.00 99 0
Da ist also der Peak bei knapp 64 MB/s ... allerdings auch verbunden mit einer entsprechenden "CPU utilization" ("iostat" produziert hier nur einen Wert für beide Cores).
Beim Schreiben ist ebenfalls nicht Schluß bei 7-9 MB/s (ich nehme mal an, daß Deine Angabe mit "kbits" ohnehin sinnlos ist wg. der fehlenden Zeiteinheit und eher in Byte als in Bit einen realistischen Wert wiedergibt) ... wenn ich auf derselben HDD 2 GB speichern lasse, erhalte ich folgende Werte:
Code:
$ [COLOR="#0000FF"][B]dd if=/dev/zero of=/var/media/ftp/<label>/dummy.out bs=$(( 64 * 1024 )) count=$(( (2 * 1024 * 1024 ) / 64 )) &[/B][/COLOR]
$ [COLOR="#0000FF"][B]iostat -cdzm 3 20[/B][/COLOR]
Linux 3.10.73 (FB7490) 03/14/17 _mips_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
4.63 0.12 17.06 6.31 0.00 71.87
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mtdblock3 0.00 0.00 0.00 0 0
sda 78.42 8.29 1.45 12071 2109
avg-cpu: %user %nice %system %iowait %steal %idle
1.91 0.00 62.78 2.78 0.00 32.52
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 262.13 0.00 32.28 0 97
avg-cpu: %user %nice %system %iowait %steal %idle
0.35 0.00 67.02 2.47 0.00 30.16
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 216.28 0.00 26.57 0 79
avg-cpu: %user %nice %system %iowait %steal %idle
0.53 0.00 [COLOR="#FF0000"]68.13[/COLOR] 1.93 0.00 29.42
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 266.67 0.00 [COLOR="#FF0000"]32.91[/COLOR] 0 98
avg-cpu: %user %nice %system %iowait %steal %idle
1.37 0.00 67.35 2.41 0.00 28.87
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 217.61 0.00 26.92 0 81
avg-cpu: %user %nice %system %iowait %steal %idle
0.85 0.00 69.28 2.73 0.00 27.13
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 259.14 0.00 31.85 0 95
avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.00 69.91 1.71 0.00 27.86
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 219.27 0.00 27.10 0 81
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 69.15 2.43 0.00 28.42
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 254.33 0.00 31.30 0 93
avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.00 67.75 2.92 0.00 28.82
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 220.27 0.00 27.12 0 81
avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 67.19 2.08 0.00 30.03
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 245.18 0.00 30.41 0 91
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 69.20 1.21 0.00 29.58
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 239.67 0.00 29.54 0 88
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 61.15 5.05 0.00 33.62
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 222.85 0.00 27.47 0 82
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 68.88 2.62 0.00 28.32
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 232.33 0.00 28.77 0 86
avg-cpu: %user %nice %system %iowait %steal %idle
0.34 0.00 66.38 3.77 0.00 29.50
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 240.86 0.00 29.61 0 89
avg-cpu: %user %nice %system %iowait %steal %idle
0.52 0.00 69.34 1.92 0.00 28.22
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 217.94 0.00 27.01 0 81
avg-cpu: %user %nice %system %iowait %steal %idle
0.35 0.00 63.02 3.30 0.00 33.33
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 235.67 0.00 29.13 0 87
avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.00 69.76 2.87 0.00 26.86
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 234.44 0.00 29.03 0 87
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 68.98 1.04 0.00 29.81
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 234.33 0.00 28.95 0 86
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 69.30 3.26 0.00 27.27
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 231.23 0.00 28.43 0 85
avg-cpu: %user %nice %system %iowait %steal %idle
1.02 0.00 68.82 2.39 0.00 27.77
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 256.67 0.00 31.75 0 95
$
32768+0 records in
32768+0 records out
2147483648 bytes (2.0GB) copied, 75.383793 seconds, [COLOR="#008000"]27.2MB/s[/COLOR]
Das sind natürlich alles nur die Werte, die man direkt auf der Box selbst erhält und es wird beim Schreiben auch nur ein einziges Zugriffsmuster (64 KB-Blöcke, bei 512 Byte/Block sackt das auf 8,1 MB/s ab anstelle der 27,2 MB/s) getestet.
Aber das ist eben der "rohe Durchsatz" und alles andere, was in der realen Welt noch den Durchsatz drücken kann (angefangen beim WLAN mit ggf. zusätzlich notwendiger Verschlüsselung), ist dabei außen vor. Wobei eben auch hier wieder die CPU-Auslastung von 68% aus der Summe der beiden Kerne besteht.
Wenn sich also jetzt jemand wundert, wieso da trotzdem noch "idle"-Zeiten dabei sind, in denen sich die CPU langweilt, dann ist das immer noch kein
eindeutiges Zeichen dafür, daß hier die Hardware aus USB-Port, Adapter-Chipsatz (USB3-to-SATA) und HDD (müßte eine Samsung Momentus - ST1000LM024 - sein) der begrenzende Faktor ist - auch "CPU-Affinitäten" (das Binden einer bestimmten Aufgabe - z.B. der Behandlung eines DMA-Interrupts - an einen dedizierten Kern bei SMP) könnten noch eine Rolle spielen; das müßte man ggf. noch weiter untersuchen.
Beim "rohen" Datendurchsatz ist also der USB3-Port der 7490 durchaus noch etwas besser als sein Ruf - das mag sich in einem realen Szenario nicht immer so zeigen, da spielen dann aber eben auch noch jede Menge andere Faktoren hinein.
- - - Aktualisiert - - -
BTW ... dieselbe HDD an einer 6490 beim Lesen (direkt auf dem ATOM-System):
Code:
# [COLOR="#0000FF"][B]iostat -cdzm 3 10[/B][/COLOR]
Linux 2.6.39.3 (FB6490) 03/14/17 _i686_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.13 0.00 0.93 0.13 0.00 98.81
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mmcblk0 0.06 0.00 0.00 19 0
mmcblk0p1 0.00 0.00 0.00 0 0
mmcblk0p2 0.00 0.00 0.00 0 0
mmcblk0p3 0.00 0.00 0.00 0 0
mmcblk0p4 0.00 0.00 0.00 0 0
mmcblk0p5 0.00 0.00 0.00 0 0
mmcblk0p6 0.00 0.00 0.00 0 0
mmcblk0p7 0.02 0.00 0.00 7 0
mmcblk0p8 0.00 0.00 0.00 0 0
mmcblk0p9 0.02 0.00 0.00 10 0
sda 0.84 0.05 0.00 946 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.67 0.00 9.50 45.50 0.00 44.33
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 421.93 26.37 0.00 79 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.33 0.00 10.50 44.50 0.00 44.67
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 417.33 26.08 0.00 78 0
avg-cpu: %user %nice %system %iowait %steal %idle
1.33 0.00 8.82 43.93 0.00 45.92
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 415.33 25.96 0.00 77 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.67 0.00 8.68 44.07 0.00 46.58
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 421.33 26.33 0.00 79 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.83 0.00 9.82 43.26 0.00 46.09
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mmcblk0 2.66 0.04 0.00 0 0
mmcblk0p7 2.66 0.04 0.00 0 0
sda 419.93 26.25 0.00 79 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 6.51 44.74 0.00 48.25
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 422.67 26.42 0.00 79 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.66 0.00 8.79 44.94 0.00 45.61
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 419.33 26.21 0.00 78 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 10.17 45.33 0.00 44.00
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 423.33 26.46 0.00 79 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.83 0.00 10.32 43.59 0.00 45.26
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 421.26 26.33 0.00 79 0
und beim Schreiben (gleiches Kommando wie bei der 7490):
Code:
# [COLOR="#0000FF"][B]iostat -cdzm 3 10[/B][/COLOR]
Linux 2.6.39.3 (FB6490) 03/14/17 _i686_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.13 0.00 1.02 0.49 0.00 98.36
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mmcblk0 0.07 0.00 0.00 20 0
mmcblk0p1 0.00 0.00 0.00 0 0
mmcblk0p2 0.00 0.00 0.00 0 0
mmcblk0p3 0.00 0.00 0.00 0 0
mmcblk0p4 0.00 0.00 0.00 0 0
mmcblk0p5 0.00 0.00 0.00 0 0
mmcblk0p6 0.00 0.00 0.00 0 0
mmcblk0p7 0.03 0.00 0.00 8 0
mmcblk0p8 0.00 0.00 0.00 0 0
mmcblk0p9 0.02 0.00 0.00 10 0
sda 3.95 0.22 0.03 4133 575
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 10.15 42.43 0.00 46.92
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 210.67 0.00 24.31 0 72
avg-cpu: %user %nice %system %iowait %steal %idle
0.33 0.00 16.14 36.94 0.00 46.59
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 200.33 0.00 23.20 0 69
avg-cpu: %user %nice %system %iowait %steal %idle
0.33 0.00 14.81 43.93 0.00 40.93
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 209.00 0.00 24.05 0 72
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 15.14 39.77 0.00 44.59
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 210.30 0.00 24.39 0 73
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 17.30 38.94 0.00 43.59
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mmcblk0 1.33 0.02 0.00 0 0
mmcblk0p7 1.33 0.02 0.00 0 0
sda 213.00 0.00 24.57 0 73
avg-cpu: %user %nice %system %iowait %steal %idle
0.33 0.00 10.68 42.90 0.00 46.08
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 213.00 0.00 24.63 0 73
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 14.31 39.43 0.00 45.76
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 196.33 0.00 22.70 0 68
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 15.00 40.00 0.00 44.50
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 205.98 0.00 23.73 0 71
avg-cpu: %user %nice %system %iowait %steal %idle
0.67 0.00 14.17 38.67 0.00 46.50
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 209.67 0.00 24.27 0 72
Hier ist also die CPU-Auslastung wesentlich geringer und da ist dann der USB2-Port (bei "storage devices") wieder etwas logischer als der begrenzende Faktor ... die HDD könnte ja mehr (das hat sie an der 7490 gezeigt).