• Home  / 
  • Linux
  •  /  Tester la vitesse d’un disque dur sous #Linux

Tester la vitesse d’un disque dur sous #Linux

By KrustyHack / last year

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 obtennus.

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 »

Le fichier `tempfile` créé lors des précédentes commandes a été mis en cache dans un buffer et sa vitesse de lecture ne reflète pas du tout la vitesse réelle de lecture depuis le disque dur. Pour récupérer la vitesse réelle, on vide le cache.

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 dique 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`.

Bonus: tester les performances avec « hdparm »

Hdparm est un utilitaire Linux qui vous permet de calculer facilement la vitesse d’écriture d’un disque dur. On l’installe donc:

╭─root@krustyhack ~  
╰─➤  apt-get install hdparm

Son utilisation est simpliste. Pour calculer la vitesse d’écriture d’un disque dur /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

Leave a comment: