Je sais que les numéros de référence exacts varieront d'un fabricant à l'autre, mais en général, si vous envisagez uniquement les lecteurs flash, cartes SD et disques durs haut de gamme, et si votre Raspberry Pi est connecté à un réseau via un commutateur Ethernet, la configuration la plus rapide à partir d'un réseau point de transfert de données? Je cherche seulement des réponses dans lesquelles les gens ont réellement essayé les configurations énumérées ci-dessous et ont des résultats réels, pas de la théorie.
De toute évidence, une carte SD doit être utilisée car elle est requise pendant au moins une partie du cycle de démarrage, mais supposons que vous disposiez d'une partition de données supplémentaire sur chacun des périphériques répertoriés ci-dessous, qui possède les vitesses de transfert réseau les plus élevées sur le Raspberry Pi?
- La carte SD
- Un lecteur flash USB
- Un disque dur USB
Cette question est non triviale car, à un moment donné, la surcharge de traitement associée à l’un des périphériques de stockage couplée à la communication Ethernet peut avoir un impact sur le débit de transfert, le port Ethernet du Raspberry Pi étant également contrôlé par le bus USB, le débit devrait en général être affecté par la coordination du transfert de données Ethernet et du transfert de données multimédia USB. Je ne sais pas si la carte SD se trouve sur le même bus USB partagé que les ports USB et le port Ethernet, mais si ce n’était pas le cas, je suppose que ce serait un avantage considérable en termes de performances.
Édité pour inclure le transfert de réseau en tant qu'exigence de référence
sudo hdparm -t /dev/sdx
comme un outil utile pour l'analyse comparative.Réponses:
Dans l'analyse comparative, vous devez toujours établir vos limites. Parce que si vous vous attendez à obtenir 100 Mo de ce réseau, vous vous trompez!
Regardez cette conception de bloc du RaspberryPI Model-B
Nous établissons donc un fait très important ici. Ethernet est goulot d’étranglement par le contrôleur USB car nous établissons qu’il est connecté au concentrateur USB. (Aucune indication claire n'utilise-t-il un autre bus ou tout simplement USB2?)
Ohh regarde - un autre diagramme,
Voilà qui jette encore plus de lumière sur la situation. Le contrôleur 10/100 est connecté au concentrateur USB. Malheureusement, encore une fois, il n’existe aucune indication sur la vitesse à laquelle le concentrateur communique avec le contrôleur de réseau local. Attendez-vous au fait que la vitesse et le réseau local sont négociés. pour les environnements usb à vitesse variable.
Où est la carte SD?
Il s’avère que la carte SD est directement connectée au BCM2835 (page 65) et qu’elle décrit en détail l’impact des performances sur différents niveaux de configuration. Une chose importante à noter est que si la carte SD a une horloge dédiée, elle peut fonctionner indépendamment de la CPU / du processeur principal à pleine vitesse (quelle que soit la carte et le standard utilisés - vous pouvez le voir supporter quelques standards.)
Alors qu'est-ce que cela signifie?
Cela signifie que si vous comparez les performances de la carte SD et du lecteur de stylo (4 Go / 8 Go), vous obtiendrez probablement des différences de performances énormes. Alors maintenant, on se demande comment le processeur / GPU gère la communication avec ce merveilleux périphérique intégré (puce USB / LAN) et à quelle vitesse est-il capable de communiquer.
Vous voyez jusqu'où peut aller la théorie avant de procéder à une analyse comparative? Un autre point clé est la suivante: comment le processeur contrôle-t-il le flux de données? Utilise-t-il le canal d'horloge séparé comme recommandé?
Dans un monde idéal, on pourrait penser que ce LAN / USB le gérera. Mais cela nécessite un MCU .. voyons-nous un MCY n'importe où dans ce diagramme .. NO!
Le processeur doit donc demander à IO DATA de lui envoyer le port USB, puis de passer au port LAN (via le même concentrateur USB) Oui.
C'est également une bonne chose de noter ce qui se passe lorsque vous copiez sur une clé USB et depuis la carte SD via un réseau local .. cela va générer du trafic.
Nous devons évaluer divers aspects
En établissant ce que nous essayons de comparer, nous pouvons poser une question du monde réel.
Maintenant que vous savez pour quoi vous vous battez, je vous mets au défi d'y répondre vous-même.
Vous pourriez trouver cela un très bon point de départ.
Les références
Mais principalement,
mes propres connaissances techniques et évaluations que j'ai réalisées sur la base de ma propre expérience intégrée. Le PO a posé une très bonne question, mais il est difficile de comprendre que sans compréhension théorique d’un système, on est condamné à essayer d’évaluer / résoudre les problèmes pratiques.
Résultats
(4) Cette réponse montre quelques essais pirates terre-à-terre. Et cela prouve que les transactions intenses de données ont une influence directe sur le processeur (il n’est pas sûr que ce soit la carte SD ou le processus de transfert des données de la puce BCM vers la puce USB / LAN)
(6) Il a été prouvé que le seul goulot d'étranglement serait la source (par exemple une carte SD lente). Le concentrateur USB parvient à pomper les données à 90% +, mais les réponses aux questions 4 et 5 peuvent directement influer sur cette performance.
Ce faisant quelques recherches et la contribution des autres utilisateurs , nous commençons à établir et à obtenir des résultats préliminaires.
Voici un joli tableau pour aider à visualiser ce que nous traitons.
la source
De toute évidence, la performance la plus élevée serait avec un disque virtuel.
Cela ne sera pas très utile pour un périphérique de stockage connecté au réseau, mais le pi n'est pas nécessairement le meilleur choix pour cette application fixe.
Pour certaines choses où la flexibilité de pi est particulièrement adaptée, les exigences de stockage réelles peuvent être suffisamment petites pour s'exécuter explicitement à partir d'un disque virtuel, ou implicitement à partir de la mémoire vive via le mécanisme de mise en cache de disque (les disques de stockage Linux ne sont que des caches de disque sans disque de sauvegarde).
Vous auriez toujours besoin d'une carte pour démarrer, mais vous pouvez également garder la carte en lecture seule et minimiser le risque de corruption.
la source
Le disque dur USB ou SSD USB devrait vous donner les performances les plus rapides. Les cartes SD écrivent environ 12 Mo / s pour les appareils class10 et l’USB peut atteindre 30 Mo / s.
Je ne suis pas d'accord pour dire que le concentrateur USB engendre un goulet d'étranglement sur Ethernet sur RPi, car le hub peut supporter 400 Mbit / s et Ethernet à 100. Donc, théoriquement, il peut supporter jusqu'à 4 ports Fast Ethernet 100 Mb / s.
la source
Je reçois au maximum 4Mb / s en utilisant un lecteur flash USB et la même chose pour USD HDD. Ceci tout en déposant simplement les fichiers via le «groupe résidentiel» du réseau Windows sur le périphérique connecté au Raspberry.
Je m'y attendais au moins 10 fois, mais je n'ai pas réussi à accélérer le transfert. J'ai essayé le transfert FTP directement sur un disque dur USB (cet appareil effectue un transfert à +60 Mo / s lorsqu'il est connecté à mon ordinateur portable), mais les résultats sont très médiocres. 100 Ko / s! Il en résulte des heures de trafic pour seulement quelques 100 Mo.
Je déplace maintenant le disque dur entre l'ordinateur portable et Raspberry Pi pour le transfert de données :-(
la source
vsftpd
.