Introduction
GNU/Linux met à disposition plusieurs méthodes pour mesurer le débit réel de l’USB.
Pour rappel, l’USB fournit les débits théoriques suivants selon la version de la norme utilisée :
USB 1.1 low speed : 7,5 Mbits/s
USB 1.1 full speed : 12 Mbits/s
USB 2.0 high speed : 480 Mbits/s
USB 3.0 : 5 Gbits/s
Ces débits sont tout-à-fait théoriques et ne seront jamais obtenus dans des cas réels car ils ne tiennent pas compte de l’overhead nécessaire ni de la charge CPU au moment du test. C’est pour cela qu’une mesure réelle est nettement plus pertinente.
Attention cependant, car il existe une confusion entre USB 2.0 et High speed. En effet, on peut très bien disposer d’un périphérique répondant à la norme USB 2.0 et que celui-ci ne supporte qu’une vitesse maximale en full speed. En d’autres termes, si vous voulez échanger à 480 Mbits/s, vérifier que votre USB est bien High speed, et non pas simplement 2.0.
Méthodes de mesure
La première méthode consiste à transférer un fichier en mesurant le temps d’exécution de l’opération de copie via l’utilitaire time.
# time cp mon_fichier /media/usbdisk
A la fin de l’opération, le temps réel est affiché. Il suffit ensuite de diviser la taille du fichier par le temps préalablement converti en secondes pour obtenir le temps d’exécution réel. Ce temps englobe toutes les opération qui ont été nécessaires au transfert (temps CPU, temps d’attente, temps de transmission sur le lien USB). Dans tous les cas, le débit ne sera jamais plus rapide que débit calculé.
Une autre méthode consiste à utiliser l’outil dd pour créer un fichier sur le disque USB. A la fin de l’opération, dd affiche le débit en écriture.
# dd if=/dev/zero of=/media/usbdisk bs=8k count=128k
Cette commande créera un fichier d’une taille de 1 Go sur le disque. A la fin de l’opération, la commande dd affiche le taux de transfert.