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 (1024 block de 1 Mo = 1 Go) et nous indiquer le taux de transfert une fois terminé. A noter qu'ici, on utilise l'option "fdatasync" qui permet de forcer la synchronisation des données entre la mémoire et le disque.

dd if=/dev/zero of=/tmp/test.data bs=1M count=1024 conv=fdatasync
rm -f /tmp/test.data

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

1073741824 bytes (1.1 GB) copied, 12.4675 seconds, 86.1 MB/s

15 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
  •  

    @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=1M count=1024
    1024+0 records in
    1024+0 records out
    1073741824 bytes (1.1 GB) copied, 0.995288 seconds, 1.1 GB/s

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

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

    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, @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
  •  

    Edit : j'ai modifié la commande dd pour ajouter l'option "fdatasync" qui permet de forcer la synchronisation des données entre la mémoire et le disque.

    RépondreRépondre
    pti-seb , le 20 septembre 2012 à 14:44
  •  

    J'ai trouvé une méthode pour mesurer la vitesse de copie d'un fichier avec cpipe :

    cat /rep/fichier.extention | cpipe -b 4096 -vr -vw -vt > /rep/fichier.extention

    RépondreRépondre
    leloup146 , le 13 octobre 2012 à 14:33
  •  

    Salut, tu parles de Mo/Go, ne serait-ce pas plutôt Mio/Gio ?

    Edit : De même, les résultats sont-ils donnés respectent-ils les recommendations du SI, je veux dire par là, 1 MB = 1000 B ? Ou sont-ils, comme sous Windows, calculés en puissance de 2, mais affichés en puissance de 10 ? (ce qui reviendrait a 1 MB = 1024 B, soit 1 MiB)

    RépondreRépondre
    Teh , le 21 décembre 2012 à 18:54
 

Ajouter un commentaire

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