La vitesse d'écriture de la carte SD semble être 14 fois plus lente que la vitesse de lecture

11

J'écrivais ce soir sur une carte SD à partir d'un lecteur de carte interne Mac Book Air, et les performances rapportées étaient de 1,4 Mo / sec. Plus tard, je l'ai lu testé sur le Raspberry Pi et j'ai obtenu 20 Mo / sec. C'est une carte de classe 6 et aucune de ces figures ne semble réaliste!

J'utilise ddpour mes tests. Résultats de tests identiques de lecture et d'écriture sur les deux ordinateurs:

Raspberry Pi: lire 20 Mo / sec. Écrire 11 Mo / sec ...
Air: Lire 3 Mo / sec. Écriture 1,4 Mo / s

En utilisant ces commandes:

Test d'écriture:

sudo dd if=/dev/zero of=/dev/mmcblk0p3 bs=1M count=400

Lire le test:

sudo dd of=/dev/null if=/dev/mmcblk0p3 bs=1M count=400

Cela indique que l'anomalie perçue était en fait une mauvaise performance du lecteur de carte SD Mac Book Air intégré! Cela rend la création d'image très lente.

ScrollerBlaster
la source
Sandisk affirme que les cartes de classe 6 ont une vitesse de lecture de 20 Mo / s, bien que Kingston affirme que 15 Mo / s est la vitesse de lecture des cartes de classe 6. Je ne sais pas si le Mac Book a un lecteur de carte SD intégré ou non. Mais pour les versions externes (USB 2.0), la qualité du lecteur de carte SD (quelles puces utilisées, etc.) est également importante pour les performances globales. Mais la lecture est toujours plus rapide avec ces appareils que l'écriture.
ikku
Merci. Il est intégré. Très bonne performance de lecture. Vraiment de mauvaises performances d'écriture.
ScrollerBlaster

Réponses:

6

La classe de vitesse de la carte SD spécifie les performances de lecture / écriture minimales que la carte devrait avoir lors de l'enregistrement vidéo. Le numéro de classe est la limite de vitesse inférieure en Mo / s que vous devriez obtenir lorsque vous utilisez la carte.

Gardez à l'esprit, cependant, que la lecture de la carte est généralement beaucoup plus simple (et donc plus rapide) que l'écriture. C'est pourquoi la carte de classe 6 habituelle aura une vitesse d'écriture de 6 Mo / s par une vitesse de lecture de 15 à 20 Mo / s (mais seulement 6 Mo / s sont garantis).

La vitesse de lecture / écriture peut être limitée non seulement par une carte mais également par de nombreux facteurs différents, à la fois matériels et logiciels. En particulier, il peut être limité par certains problèmes avec le lecteur / enregistreur de carte.

Donc, dans votre situation, il semble que votre carte ait de très mauvaises performances sur votre Mac Book Air alors qu'elle a des performances correctes (et réalistes) sur RaspberryPi. Nous ne pouvons pas être sûrs, cependant, puisque vous avez testé la vitesse d' écriture sur Mac Book et la vitesse de lecture sur RaspberryPi et comme je l'ai mentionné plus tôt, ils ne sont pas comparables. Il est également difficile de dire pourquoi vous obtenez de tels résultats, car vous n'avez pas précisé comment testez-vous ces vitesses.

Krzysztof Adamski
la source
J'ai besoin de tester la lecture et l'écriture sur les deux plates-formes. J'utilisedd
ScrollerBlaster
@ScrollerBlaster: Vous ne pouvez pas comparer la vitesse de lecture en écriture les unes par rapport aux autres. De même, lorsque vous testez à peu près n'importe quoi, une bonne règle de base est de ne changer qu'une seule chose à la fois. Mais vous avez tout changé (OS, ordinateur hôte, lecteur de cartes) mais une chose (carte SD) dans votre configuration, de sorte que cela ne vous donnera pas de résultats significatifs.
Krzysztof Adamski
J'ai dit que je comparerais la lecture et l'écriture sur le même système d'exploitation. Avez-vous un problème avec cette approche?
ScrollerBlaster
@ScrollerBlaster: Non, pas du tout. Je voulais juste être clair sur ce que je veux dire en disant qu'ils ne sont pas comparables dans ma réponse. N'oubliez pas que cette réponse n'est pas seulement pour vous mais pour toutes les autres personnes qui pourraient avoir des problèmes similaires à l'avenir, alors j'essaie de rendre mes conseils aussi génériques que possible.
Krzysztof Adamski
Lorsque vous avez souligné dans votre article que mon test ne comparait pas les pommes et les oranges, c'était un point très valable. Dans mon premier commentaire, j'ai déclaré que je referais le test, ce qui signifie que je referais la lecture et l'écriture sur les deux plates-formes. Par la suite, vos conseils ultérieurs m'ont été inutiles. À l'avenir, toute conclusion concernant Air par rapport à PI est encore prématurée. Le test le plus pertinent sera un test de lecture vs écriture sur le PI, étant donné qu'il s'agit d'un forum PI. Si vous avez des ddcommandes pour faire un test d'écriture sûr, je les utiliserai!
ScrollerBlaster
10

Pour tirer le meilleur parti de la fente SD de votre MacBook, vous devez utiliser un périphérique à «disque brut».

Il s'agit d'une carte SanDisk Ultra Class 10:

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/disk1 bs=8m
231+1 records in
231+1 records out
1939865600 bytes transferred in 1076.078932 secs (1802717 bytes/sec)

Comparez cela à l'utilisation /dev/rdisk1au lieu de/dev/disk1

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/rdisk1 bs=1m
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 129.712100 secs (14955163 bytes/sec)

1,8 Mo / s contre 14,9 Mo / s - près de 10 fois l'amélioration!

Bert
la source
Quelle est la différence entre le disque et le rdisk?
valentt
"Ils sont plus proches du disque physique que du cache de tampon. Les nœuds / dev / disk, en revanche, sont des périphériques spécifiques aux blocs tamponnés et sont principalement utilisés par le code du système de fichiers du noyau." - Consultez la hidutilpage de manuel pour plus d'informations.
Bert
1
Cela peut être trompeur car la taille du bloc a changé entre les deux tests.
Nick
FWIW: J'ai changé la taille du bloc à 1 m et le périphérique / dev / rdisk1 et ma vitesse d'écriture sont passés de ~ 1,75 Mo / s à ~ 11,4 Mo / s avec une carte de classe 10.
Gardner Bickford
Je peux le confirmer - l'écriture d'une image pour ma carte SD RPi est 20 fois plus rapide lorsque j'utilise rdisk2. J'ai gardé la taille de bloc constante pour cela (4 m). En utilisant / dev / disk2, gdd écrit à 197 ko / s. En utilisant / dev / rdisk2, il écrit à 10,6 Mo / s
judepereira
1

Vous pouvez également utiliser ces commandes pour l'analyse comparative sans influence du cache qui est chargé dans la RAM:

lire la référence de vitesse: $ sudo dd if = / dev / sdX1 of = / dev / zero bs = 1M count = 400 iflag = direct

repère de vitesse d'écriture: $ sudo dd if = / dev / zero of = / dev / sdX1 bs = 1M count = 400 skip = 1000 oflag = direct

Assurez-vous de toujours utiliser oflag = direct et iflag = direct lorsque vous effectuez respectivement un test de référence en écriture et en lecture, sinon vous risquez d'obtenir des résultats qui sont en réalité des temps d'écriture et de lecture de cache de fil.

valentt
la source
0

Sur mon MBP 2015 exécutant OSX 10.11.5, j'ai reçu les vitesses d'écriture suivantes lors de l'utilisation de dd:

lors de l'écriture sur / dev / disque: 1,80 Mo / s lors de l'écriture sur / dev / rdisk: 12,80 Mo / s

Fr. Austin
la source