Les tests ont étés réalisés avec dd sur RaspberryPi.

Pour l’écriture, on “lit” depuis /dev/zero ce qui fait que la vitesse de lecture n’est pas un frein.

dd if=/dev/zero bs=xxxx count=yyyy of=file_1GB

Pour la lecture, on “écrit"vers /dev/null ce qui fait que la vitesse d’écriture n’est pas un frein.

dd if=file_1GB of=/dev/null bs=xxxx

Les tests ont été réalisés en jouant avec un fichier d’une taille de 1 Gio mais avec différentes valeurs de bs.

La taille à priori optimale de bs est déterminée en utilisant la commande:

stat -c "%o" file_1GB

D’autres commandes peuvent être utile pour déterminer bs

fdisk -l /dev/sda1 | grep "I/O size"
dumpe2fs /dev/sda1 | grep -i "Block size"

A titre d’information, il semblerait que la commande cp utiliserait un bs de 4096 octets.

Les tests ont étés réalisés sans une utilisation parallèle du bus USB (pas d’autre périphérique sur les ports USB, utilisation ethernet limitée aux commandes passées en SSH )

  • Clé USB Corsair EXT4

    • bs=4096
      Écriture: 29.2 MB/s
      Lecture: 27.1 MB/s

    • bs=1024 Écriture: 15.5 MB/s
      Lecture: 21.7 MB/s

  • Clé USB Corsair FAT32

    • bs=16384
      Écriture: 20.7 MB/s
      Lecture: 26.0 MB/s
    • bs=4096
      Écriture: 20.1 MB/s
      Lecture: 26.9 MB/s
  • Disque Dur USB FAT32

    • bs=4096
      Écriture: 21.3 MB/s
      Lecture: 25.1 MB/s
    • bs=32768
      Écriture: 21.6 MB/s
      Lecture: 24.7 MB/s
  • Disque Dur USB EXT4

    • bs=4096
      Écriture: 31.1 MB/s
      Lecture: 24.0 MB/s

Ne me demandez pas pourquoi la vitesse d’écriture est parfois supérieure à la vitesse de lecture.