Tester la vitesse de lecture et d'écriture d'un disque sous Linux


Disque Dur
Voici plusieurs astuces qui permettent de connaître la vitesse de lecture et d'écriture d'un disque dur sous Linux. Les tests sont assez basiques, certes, mais ils donnent des résultats assez proches de la réalité.

Disques Serveur

Pré-requis

Pour réaliser l'ensemble de ces tests, nous allons avoir besoin des logiciels pv et hdparm. Lancez la commande suivante, en root, pour les installer sur une distribution à base de Debian :

sudo apt-get install pv hdparm

Ou celle-ci pour une distribution à base de RPM :

yum install pv hdparm

Test de lecture

Notre premier test de lecture consiste à lire l'ensemble des données contenues sur un disque dur (/dev/sda) et mesurer ensuite le débit grâce à l'utilitaire pv :

cat /dev/sda | pv -r > /dev/null

Sur la Dedibox de Tux-planet, j'obtiens un taux de transfert de 129 Mo/s. Mais le résultat n'est pas très stable et change régulièrement.

Une seconde méthode, un peu plus précise, consiste à se servir de la commande hdparm. Les options utilisées permettent de connaître la vitesse de lecture depuis le cache du disque (-t), ainsi que depuis un accès direct (-T).

Voici un exemple d'utilisation :

$ hdparm -t -T /dev/sda
Timing cached reads: 26196 MB in 2.00 seconds = 13120.00 MB/sec
Timing buffered disk reads: 330 MB in 3.00 seconds = 109.92 MB/sec

Test d'écriture

Pour tester la vitesse d'écriture, on peut tout simplement utiliser la commande dd. Celle-ci va créer un fichier de 1 Go (8K *128 = 1024K) et nous indiquer le taux de transfert une fois terminé :

dd if=/dev/zero of=/tmp/test.data bs=8k count=128k
rm -f /tmp/test.data

Sur la Dedibox de Tux-planet, j'obtiens un débit de 81 Mo/s :

1073741824 bytes (1.1 GB) copied, 13.193 seconds, 81.4 MB/s

Autres articles du même sujet


12 Commentaires pour "Tester la vitesse de lecture et d'écriture d'un disque sous Linux"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Salut, cette méthode marche aussi pour les périphériques USB?

    RépondreRépondre
    leloup146 , le 1 février 2011 à 16:15
  •  

    LOL l'image ^^

    RépondreRépondre
    Muy_Bien , le 1 février 2011 à 16:22
  •  

    il y a aussi iozone (apt-get install iozone), a lancer avec le parametre -I (i maj) pour desactiver le cache. il vous donnera plus de détails.

    RépondreRépondre
    jpp , le 1 février 2011 à 16:42
  •  

    @leloup146 : oui cela marche pour les disque USB aussi, il suffit de trouver le chemin du périphérique. Tu peux utiliser la commande mount pour t'aider. Chez moi c'est /dev/sdc1 et ça donne des taux de lecture ridicule :

    $ sudo cat /dev/sdc1 | pv -r > /dev/null
    25.5MB/s

    $ sudo hdparm -t /dev/sdc1
    /dev/sdc1:
    Timing buffered disk reads: 76 MB in 3.00 seconds = 25.31 MB/sec

    @Muy_Bien : j'adore cette photo aussi !

    @jpp : j'ai testé sous Ubuntu, le nom du paquet c'est iozone3 en faite :

    sudo apt-get install iozone3

    Je le trouve un peu moins simple à utiliser que hdparm pour ma part (affichage des résultats difficile à lire, pas possible de spécifier un périphérique précis...).

    RépondreRépondre
    pti-seb , le 1 février 2011 à 17:39
  •  

    Le délire pour le test d'écriture :
    # dd if=/dev/zero of=/tmp/test.data bs=8k count=128k
    131072+0 records in
    131072+0 records out
    1073741824 bytes (1.1 GB) copied, 0.858667 s, 1.3 GB/s

    je ne sais pas pourquoi ça va aussi vite !

    RépondreRépondre
    Droide , le 1 février 2011 à 18:22
  •  

    @Droide : c'est bizarre effectivement, 0.8 seconde pour copier 1 Go. Ta partition /tmp est normal ? Tu n'aurais pas un montage directement sur la mémoire vive par exemple ?

    Car j'obtiens des résultats similaires si j'écris en RAM justement (/dev/shm) :

    $ dd if=/dev/zero of=/dev/shm/test.data bs=8k count=128k
    131072+0 records in
    131072+0 records out
    1073741824 bytes (1.1 GB) copied, 0.62516 s, 1.7 GB/s

    Lance la commande mount pour en avoir le coeur net...

    RépondreRépondre
    pti-seb , le 1 février 2011 à 18:56
  •  

    @Droide, @pti-seb : la RAM est utilisée comme cache en écriture.

    Sinon, dd peut aussi être utilisé pour faire le test en lecture :

    dd -if=/dev/sda of=/dev/null

    On peut également faire le test sur les différentes partitions du disque :
    dd -if=/dev/sdaN of=/dev/null
    où N est le n° de la partition.
    On constatera alors que l'on obtient les débits les plus rapides pour les partitions situées en début de disque et que les débits chutent au fur et à mesure que les partitions en sont loin (s'il n'y a pas de LVM ou de RAID, évidemment).

    RépondreRépondre
    nozov , le 1 février 2011 à 19:11
  •  

    @pti-seb : Effectivement c'est dans ma ram :) (de même que pour /var/tmp/portage mais ça c'est volontaire)

    sinon j'obtiens ça sur mon disque :
    /dev/sda:
    Timing cached reads: 12246 MB in 2.00 seconds = 6131.17 MB/sec
    Timing buffered disk reads: 282 MB in 3.02 seconds = 93.49 MB/sec

    RépondreRépondre
    Droide , le 1 février 2011 à 19:20
  •  

    Merci @pti-seb

    J'essaye de comprendre pourquoi mon Iriver P7 est incroyablement lent en écriture face à une clef USB.

    clef USB:
    dd if=/dev/zero of=/media/ZMATE_01/test.data bs=8k count=4k
    4096+0 enregistrements lus
    4096+0 enregistrements écrits
    33554432 octets (34 MB) copiés, 1,74616 s, 19,2 MB/s

    Iriver P7:
    dd if=/dev/zero of=/media/IRIVER\ P7/test.data bs=8k count=4k
    4096+0 enregistrements lus
    4096+0 enregistrements écrits
    33554432 octets (34 MB) copiés, 229,768 s, 146 kB/s

    disque dur:
    dd if=/dev/zero of=/home/loup/Desktop/test.data bs=8k count=4k
    4096+0 enregistrements lus
    4096+0 enregistrements écrits
    33554432 octets (34 MB) copiés, 0,158088 s, 212 MB/s

    Il est visiblement aussi lent en lecture mais ça ne pose pas vraiment de problème.

    RépondreRépondre
    leloup146 , le 1 février 2011 à 19:20
  •  

    Evitez d'utiliser dd pour faire des test de perfs, dd " n'attaque" pas directement le disque dur mais passe par le cache de linux.
    Utilisez plutot iozone (avec l'option -I pour direct IO), par example : iozone -I -a pour un mode automatique.

    RépondreRépondre
    jpp , le 1 février 2011 à 19:39
  •  

    @leloup146 : ton Iriver P7 a toujours eu des performances aussi ridicule où c'est depuis un certain temps seulement ?

    RépondreRépondre
    pti-seb , le 2 février 2011 à 13:32
  •  

    @pti-seb : Il a toujours eu ce problème. Sous windows la vitesse est normale. Petit détail, le P7 a un slot Micro SD.

    RépondreRépondre
    leloup146 , le 2 février 2011 à 14:38
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky crack date debian Desktop développement exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware intel internet iphone jailbreak jaunty Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette microblog microsoft mini-blog mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet plugins publicité redhat red hat rpm réseau screenshot script serveurs shell sql ssh statistiques system sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum