Nel benchmarking devi sempre stabilire quali sono i tuoi limiti. Perché se ti aspetti di ottenere 100 Mb da quella lan di quello che stai solo prendendo in giro te stesso!
Guarda questo design a blocchi di RaspberryPI Model-B
Quindi stabiliamo un fatto molto importante qui. Ethernet è un collo di bottiglia dal controller USB perché formano il digramma a blocchi stabiliamo è collegato all'hub USB. (Nessuna indicazione chiara utilizza un altro bus o semplicemente USB2?)
Ohh guarda - un altro diagramma a blocchi,
Ora questo fa luce ancora di più sulla situazione. Il controller 10/100 è collegato all'hub USB - purtroppo, ancora una volta, non è possibile sapere dove l'hub comunica con la velocità con cui l'hub comunica con il controller lan - aspettarsi il fatto chiave che dice che la velocità usb e la lan sono negoziate per ambienti USB a velocità mista.
Dov'è la scheda SD?
Si scopre che la scheda SD è direttamente collegata al BCM2835 (pagina 65) e descrivono in modo molto dettagliato l'impatto delle prestazioni da vari livelli di configurazione. Una cosa importante da notare è che se la scheda SD ha un Clock dedicato, può funzionare indipendentemente dalla CPU / GPU principale alla massima velocità (di qualunque scheda e standard venga utilizzata, è possibile vedere che supporta alcuni standard).
Che cosa vuol dire?
Significa che se si confronta la scheda SD più veloce e la pen drive scadente (4 gb / 8 gb) molto probabilmente si otterranno enormi differenze di prestazioni. Quindi ora solleva la domanda, come fa la CPU / GPU a gestire la comunicazione con questo meraviglioso dispositivo incorporato (chip usb / lan) e a quali velocità è in grado di comunicare.
Vedi fino a che punto la teoria può davvero andare avanti prima di fare qualsiasi benchmarking? Un altro punto chiave qui è: come fa la CPU a controllare il flusso di dati. Utilizza il canale di clock separato come raccomandato?
In un mondo ideale potresti pensare che questa LAN / USB lo gestirà. Ma ciò richiede un MCU .. vediamo un MCY ovunque nello schema a blocchi .. NO!
Quindi la CPU deve richiedere IO DATA inviandolo alla porta USB quindi va alla porta LAN (tramite lo stesso HUB USB) Sì .. in modo che causerà alcuni problemi di velocità da qualche parte.
Inoltre, è importante notare cosa succede quando si copia su una chiavetta USB e dalla scheda SD tutto tramite LAN .. causerà un po 'di traffico.
Dobbiamo confrontare vari aspetti
Nello stabilire ciò che stiamo cercando di confrontare possiamo porre una domanda nel mondo reale.
- Quanto velocemente l'USB interna gestisce i dati dalla SD?
- Quanta CPU viene utilizzata per leggere / scrivere su SD, quindi su LAN?
- Quanta CPU viene utilizzata per leggere / scrivere su una penna USB?
- La copia di dati influenza direttamente l'utilizzo della CPU?
- In che modo il chip USB / LAN incorporato gestisce la lettura dei dati da 2 fonti nella porta LAN e influisce in modo proporzionale sulla CPU?
- Non è necessario testare se lan avrà 10 MB / s completi perché è strozzata dallo stato in cui si trova l'hub USB.
Ora che sai per cosa stai combattendo, ti sfido a rispondere a te stesso.
Potresti trovare questo un ottimo punto di partenza.
Riferimenti
Ma soprattutto
le mie conoscenze tecniche e valutazioni che ho fatto sulla base della mia esperienza incorporata. L'OP ha posto un'ottima domanda ma manca di capire che senza la comprensione teorica di un sistema sei condannato a provare a valutare / risolvere i problemi pratici.
risultati
(4) Questa risposta mostra alcuni test piratici sulla terra. E dimostra che fare intense transazioni di dati influenza direttamente la CPU (ma non sono sicuro se si tratti della scheda SD o del processo di spostamento dei dati all'interno del chip BCM sul chip USB / LAN)
(6) È stato dimostrato che l'unico collo di bottiglia sarà la fonte (ad esempio una scheda SD lenta) L'hub USB riesce a pompare i dati al 90% + ma la risposta alle domande 4 e 5 può influenzare direttamente questa prestazione.
Quindi, facendo alcune ricerche e contributi di altri utenti, stiamo iniziando a stabilire e ottenere risultati preliminari.
Ecco un bel grafico per aiutare a visualizzare ciò con cui abbiamo a che fare.
sudo hdparm -t /dev/sdx
come strumento utile per il benchmarking.