J’étais tombé sur un bon article en anglais qui expliquait comment tester facilement la vitesse de lecture/écriture d’un disque du sous #Linux. Je partage donc ce petit tutoriel que j’ai fait pour celles et ceux qui, comme moi, veulent tester les performances de leur disque dur sur #Linux via le #shell.
Vous apprendrez également comment tester des disques durs externes, des clé usb, … tout cela grâce à la commande dd et à l’utilitaire hdparm.
Pour des résultats optimaux, je vous recommande de lancer les tests plusieurs fois de suite et de faire une moyenne des résultats obtenus.
Tester la vitesse d’un disque dur en écriture avec “dd”
Là, on peut pas faire plus simple:
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=tempfile bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 16,9664 s, 63,3 MB/s
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=tempfile bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 16,3052 s, 65,9 MB/s
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=tempfile bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 12,7017 s, 84,5 MB/s
Ce qui me donne une vitesse moyenne en écriture sur mon disque dur de 71.23 MB/s.
On test également sur un SSD:
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fsync
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 0,774313 s, 1,4 GB/s
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fsync
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 0,650276 s, 1,7 GB/s
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fsync
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 0,690866 s, 1,6 GB/s
On voit clairement que ça pulse du poney ! Le HDD doit se sentir un peu minable à côté.
Tester la vitesse de lecture du disque dur avec “dd”
Mais avant, testons quand même la vitesse de lecture depuis le buffer:
╭─root@krustyhack ~
╰─➤ dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 0,183901 s, 5,8 GB/s
On nettoie ensuite le cache Linux afin de calculer la vitesse réelle:
╭─root@krustyhack ~
╰─➤ /sbin/sysctl -w vm.drop_caches=3
vm.drop_caches = 3
╭─root@krustyhack ~
╰─➤ dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 43,131 s, 24,9 MB/s
Ah ouais quand même. La vitesse de lecture s’est pris une sacrée claque !
Tester la vitesse de lecture/écriture d’un disque dur externe
Là encore, la manipulation est simple. Pour calculer les performances d’un disque dur externe, d’une clé usb, … il vous suffit d’accéder à son point de montage et d’exécuter les précédentes commandes. Ou alors vous pouvez remplacer tempfile
avec le chemin de votre point de montage:
╭─root@krustyhack ~
╰─➤ dd if=/dev/zero of=/media/krustyhack/poney_usbey/tempfile bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 15,1028 s, 71,1 MB/s
Une fois les tests terminés, n’oubliez pas de supprimer le fichier `tempfile`.
Tester les performances avec « hdparm »
Hdparm est un utilitaire Linux qui vous permet de calculer facilement la vitesse de lecture d’un disque dur. On l’installe donc:
╭─root@krustyhack ~
╰─➤ apt-get install hdparm
Son utilisation est assez simple. Pour calculer la vitesse de lecture d’un disque dur sur /dev/sda
, il suffit de lancer la commande:
╭─root@krustyhack ~
╰─➤ hdparm -Tt /dev/sda
/dev/sda: Timing cached reads: 11432 MB in 2.00 seconds = 5721.43 MB/sec Timing buffered disk reads: 296 MB in 3.07 seconds = 96.54 MB/sec
La commande DD ne mesure rien car elle ne sait pas ou elle écrit et la vitesse d’un disque est très différentes entre le début et la fin.
Ay,
Et que conseilles-tu pour mesurer efficacement la vitesse d’écriture/lecture sur un disque ? L’outil hdparm serait plus pertinent ?
La commande hdparm -tT permet de calculer la vitesse de lecture et non d’écriture (ref man hdparm section -t et -T)
Ay,
Exact ! My bad ! En plus c’est marqué dans l’output de la commande…
J’ai maj l’article. Merci à toi ! 🙂