18 votes

Comment accélérer la vitesse d'écriture des cartes SD (en utilisant /dev/disk*) sur un MacBook Pro ?

J'ai installé quelques distributions linux sur une carte SD à partir de mon MacBook, bien qu'il faille plus d'une heure pour transférer quelques centaines de Mo (en utilisant la fonction dd y /dev/disk1 ).

dd output

Si vous regardez la sortie ci-dessus, elle fonctionne à environ 0,31 Mo/s ! La carte SD est une Classe 10, et mon MacBook Pro est un Intel Core 2 Duo 2.66 GHz, 4 GB 1067 MHz DDR3, et OS X Lion 10.7.4. Voici le rapport matériel pour le lecteur de carte :

Lecteur de carte SD intégré :

ID du vendeur : 0x05ac
ID du produit : 0x8403
Révision : 1.00 Numéro de série 9833

Carte SDHC :

Capacité : 7,97 Go (7 969 177 600 octets)
Supports amovibles : Oui BSD Nom : disk1
Type de carte de partition : MBR (Master Boot Record)
Statut S.M.A.R.T : Non pris en charge
Volumes :

PI :
Capacité : 7,96 Go (7 964 983 296 octets)
Système de fichiers : MS-DOS
Nom BSD : disk1s1
Contenu : DOS_FAT_32

Une idée de la raison pour laquelle le transfert vers /dev/disk1 est si lent et comment je pourrais l'accélérer ?

44voto

Ale Points 11

Je viens de rencontrer le même problème et il semble que /dev/disk* est lent car il est mis en mémoire tampon. Si vous utilisez le périphérique rdisk correspondant (ex : /dev/rdisk1s1 ) vous devriez obtenir la vitesse que vous attendez. C'est apparemment un truc BSD.

Ejemplo:

% sudo dd if=pi.bin of=/dev/disk1 bs=1m count=4095
^C408+0 records in
407+0 records out
426770432 bytes transferred in 1393.452305 secs (306268 bytes/sec)

% sudo dd if=pi.bin of=/dev/rdisk1 bs=1m count=4095
4095+0 records in
4095+0 records out
4293918720 bytes transferred in 378.669512 secs (11339489 bytes/sec)

Réf :

3voto

iolsmit Points 4325

Il se pourrait bien que la carte SD soit si lente.

Jetez un coup d'œil à cette référence (Random Write, 4 KB (QD=1) [MB/s]) et vous verrez que la plupart des cartes SD ont une performance d'écriture minable (moins de 100 kB/s) pour les petits fichiers - et une installation linux typique consiste en beaucoup de petits fichiers écrits sur le disque.

Le lecteur de carte interne doit être capable de lire/écrire au moins 20 MB/s - il est très peu probable qu'un autre lecteur de carte améliore votre expérience avec cette carte SD.

Une fois que tous les fichiers sont écrits, c'est-à-dire que le système est installé, vous pouvez en fait être capable d'exécuter Linux à partir de la carte SD à une vitesse acceptable - car il s'agit principalement d'accès en lecture.

1voto

ddiepo Points 11

Si la carte est montée avec l'option sync, cela signifie que chaque fermeture de fichier entraîne la purge de l'écriture sur le disque et donc que vos performances sur les petits fichiers seront terribles par rapport aux gros fichiers. Si vous supprimez l'option sync des options de montage, alors il n'y a aucune garantie que l'écriture d'un fichier entraîne sa sortie sur le disque -- vous devez appeler manuellement sync depuis la ligne de commande, ou démonter le périphérique avant de le retirer ou de l'éteindre. Cependant, sans synchro, vous devriez voir les performances d'écriture des petits fichiers s'améliorer considérablement.

1voto

Justin Lin Points 103

Non, c'est clairement un problème avec le Mac OS. J'obtiens des performances nettement plus rapides lorsque je fais la même opération en utilisant Linux sur une machine virtuelle fonctionnant sur le même Macintosh. En d'autres termes, la machine virtuelle est environ 5 fois plus rapide que l'OS natif.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X