Beim Benchmarking müssen Sie immer feststellen, an welche Grenzen Sie stoßen. Denn wenn Sie erwarten, 100 MB aus diesem LAN herauszuholen, dann täuschen Sie sich nur selbst!
Schauen Sie sich dieses Block-Design des RaspberryPI Model-B an
Deshalb stellen wir hier eine sehr wichtige Tatsache fest. Der USB-Controller hat einen Ethernet-Engpass , da er aus dem von uns erstellten Block-Digramm mit dem USB-Hub verbunden ist. (Keine eindeutige Angabe, ob ein anderer Bus oder einfach nur USB2 verwendet wird?)
Ohh schau - ein weiteres Blockdiagramm,
Das wirft jetzt noch mehr Licht auf die Situation. Der 10/100-Controller ist mit dem USB-Hub verbunden. Leider gibt es auch hier keine Angabe darüber, wie schnell der Hub mit dem LAN-Controller kommuniziert. Erwarten Sie die Schlüsseltatsache, dass USB-Geschwindigkeit und LAN ausgehandelt werden Für USB-Umgebungen mit gemischter Geschwindigkeit.
Wo ist die SD-Karte?
Es hat sich herausgestellt, dass die SD-Karte direkt mit dem BCM2835 verbunden ist (Seite 65). Sie zeigen sehr detailliert, wie sich die Leistung auf die verschiedenen Konfigurationsebenen auswirkt. Es ist wichtig zu beachten, dass die SD-Karte mit einem dedizierten Takt unabhängig von der CPU / GPU mit voller Geschwindigkeit betrieben werden kann (unabhängig von der verwendeten Karte und dem verwendeten Standard - es werden einige Standards unterstützt).
Was bedeutet das?
Wenn Sie die schnellere SD-Karte und das beschissene USB-Laufwerk (4 GB / 8 GB) testen, werden Sie höchstwahrscheinlich massive Leistungsunterschiede feststellen. Nun stellt sich die Frage, wie die CPU / GPU die Kommunikation mit diesem wunderbaren eingebetteten Gerät (USB / LAN-Chip) handhabt und mit welcher Geschwindigkeit sie kommunizieren kann.
Sehen Sie, wie weit die Theorie tatsächlich gehen kann, bevor wir überhaupt ein Benchmarking durchführen? Ein weiterer wichtiger Punkt ist: Wie steuert die CPU den Datenfluss? Verwendet es den empfohlenen separaten Uhrenkanal?
In einer idealen Welt würde man denken, dass dieses LAN / USB damit umgehen würde. Aber das erfordert eine MCU. Sehen wir irgendwo in diesem Blockdiagramm eine MCY? NEIN!
Die CPU muss also IO DATA anfordern, sendet es an den USB-Port und geht dann an den LAN-Port (über denselben USB-Hub). Ja. Dies kann zu Geschwindigkeitsproblemen führen.
Es ist auch eine großartige Sache zu beachten, was passiert, wenn Sie auf einen USB-Stick und von der SD-Karte alles über LAN kopieren. Es wird etwas Verkehr verursachen.
Wir müssen verschiedene Aspekte vergleichen
Wenn wir herausfinden, was wir messen wollen, können wir eine reale Frage stellen.
- Wie schnell verarbeitet der interne USB Daten von SD?
- Wie viel CPU wird zum Lesen / Schreiben auf SD und dann auf LAN verwendet?
- Wie viel CPU wird zum Lesen / Schreiben auf einem USB-Stick verwendet?
- Hat das Kopieren von Daten direkten Einfluss auf die CPU-Auslastung?
- Wie gut kann der eingebettete USB / LAN-Chip Daten von 2 Quellen zurück in den LAN-Port lesen und wirkt sich dies proportional auf die CPU aus?
- Es ist nicht erforderlich zu testen, ob das LAN 10 MB / s erreicht, da der Zustand, in dem sich der USB-Hub befindet, einen Engpass darstellt.
Jetzt, da du weißt, wofür du kämpfst, fordere ich dich auf, dir selbst zu antworten.
Das ist vielleicht ein sehr guter Ausgangspunkt.
Verweise
Aber meistens,
Mein eigenes technisches Wissen und meine Einschätzungen basieren auf meiner eigenen Erfahrung. Das OP hat eine sehr gute Frage gestellt, aber es ist unverständlich, dass Sie ohne theoretisches Verständnis eines Systems dazu verurteilt sind, die praktischen Probleme zu bewerten / lösen.
Ergebnisse
(4) Diese Antwort zeigt einige bodenständige Piratenversuche. Und es beweist, dass intensive Datentransaktionen die CPU direkt beeinflussen (nur nicht sicher, ob es sich um die SD-Karte handelt oder ob Daten innerhalb des BCM-Chips auf den USB / LAN-Chip verschoben werden).
(6) Es wurde nachgewiesen, dass der einzige Flaschenhals die Quelle sein wird (z. B. eine langsame SD-Karte). Der USB-Hub schafft es, Daten mit 90% + zu pumpen, aber die Beantwortung der Fragen 4 und 5 kann diese Leistung direkt beeinflussen.
Mit einigen Nachforschungen und Beiträgen anderer Benutzer beginnen wir, vorläufige Ergebnisse zu ermitteln und zu erhalten.
Hier ist ein schönes Diagramm , um zu veranschaulichen, womit wir es zu tun haben.
sudo hdparm -t /dev/sdx
ein nützliches Instrument für das Benchmarking verwenden.