Dernière mise à jour : Debian 10.3 / Buster
Ce document indique quelques méthodes de mesure indicative de la vitesse de lecture et d'écriture des périphériques de stockage.
Sommaire
$ su -c 'echo 3 > /proc/sys/vm/drop_caches'
hdparm possède des options permettant de mesurer le temps de lecture sur disque. Le test est indépendant du système de fichier sur le disque.
L'option -t ( Timing buffered disk reads) fournit une indication de la vitesse de lecture sur le disque
L'option -T (Timing cached reads) fournit une indication de la vitesse de lecture du cache (sans intervention du disque)
$ sync ; sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 28678 MB in 1.99 seconds = 14429.61 MB/sec
Timing buffered disk reads: 1394 MB in 3.00 seconds = 464.03 MB/sec
Lorsque les mesures sont répétées, les résultats sont sensiblement identiques
$ sync ; sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 30392 MB in 1.99 seconds = 15300.13 MB/sec
Timing buffered disk reads: 1390 MB in 3.00 seconds = 462.89 MB/sec
Mesure (deux fois de suite) de la vitesse de lecture du même disque que précédemment avec une taille de bloc de 1M
$ sync ; sudo dd if=/dev/sda bs=1M count=8192 iflag=direct of=/dev/null
8192+0 enregistrements lus
8192+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 17,9498 s, 479 MB/s
$ sync ; sudo dd if=/dev/sda bs=1M count=8192 iflag=direct of=/dev/null
....
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 18,04 s, 476 MB/s
$ sync ; sudo dd if=/dev/sda bs=1G count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 15,2402 s, 564 MB/s
$ sync ; sudo dd if=/dev/sda bs=1G count=8 iflag=direct of=/dev/null
....
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 15,2528 s, 563 MB/s
Le test consiste à écrire un fichier "test" (par exemple 8 GiB dans l'exemple qui suit) avec des zéros, sur une partition montée. Vérifier qu'il y a une place suffisante sinon réduire la taille du test en conséquences.
$ su -c 'echo 3 > /proc/sys/vm/drop_caches'
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sync; sudo dd if=/dev/zero of=test bs=1GiB count=8 oflag=direct
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 17,1594 s, 501 MB/s
$ sync; sudo dd if=/dev/zero of=test bs=1GiB count=8 oflag=direct
....
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 16,9837 s, 506 MB/s
Quelques résultats obtenus sur différents supports
$ sync; sudo dd if=/dev/nvme0n1 bs=1GiB count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 2,57795 s, 3,3 GB/s
$ sync; sudo dd if=/dev/nvme0n1 bs=1GiB count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 3,40821 s, 2,5 GB/s
Disque SSD SATA : 561 MB/s
$ sync; sudo dd if=/dev/sda bs=1GiB count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 15,3016 s, 561 MB/s
Clé usb 3.1 SanDisk 128GB - donnée pour 130MB/s - Entre 93MB/s et 47MiB/sec
$ sync; sudo dd if=/dev/sdb bs=128MiB count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écrits
1073741824 octets (1,1 GB, 1,0 GiB) copiés, 11,5536 s, 92,9 MB/s
$ sync; sudo dd if=/dev/sdb bs=1GiB count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 183 s, 46,9 MB/s
Clé usb 3.0 16 GiB : 139 MB/s
$ sync; sudo dd if=/dev/sdb bs=1GiB count=8 iflag=direct of=/dev/null
8+0 enregistrements lus
8+0 enregistrements écritss
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 61,6224 s, 139 MB/
Clé usb 3.0 16GiB "premier prix" ; 18 MB/s
$ sync; sudo dd if=/dev/sdb bs=1GiB count=1 iflag=direct of=/dev/null
1+0 enregistrements lus
1+0 enregistrements écrits
1073741824 octets (1,1 GB, 1,0 GiB) copiés, 61,1757 s, 17,6 MB/s
Quelques résultats obtenus sur différents supports (système de fichier ext4 dans tous les cas)
$ sync; sudo dd if=/dev/zero of=/test bs=1GiB count=2 oflag=direct
2+0 enregistrements lus
2+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 0,966965 s, 2,2 GB/s
$ sudo rm /test
$ sync; sudo dd if=/dev/zero of=test bs=1GiB count=2 oflag=direct
2+0 enregistrements lus
2+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 1,85307 s, 1,2 GB/s
$ sudo rm /test
Disque /home SSD SATA chiffré luks: 501 MB/s
$ sync; sudo dd if=/dev/zero of=test bs=1GiB count=8 oflag=direct
8+0 enregistrements lus
8+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 17,1594 s, 501 MB/s
$ sudo rm ~/test
$ sync; sudo dd if=/dev/zero of=test bs=8GiB count=1 oflag=direct;sync
0+1 enregistrements lus
0+1 enregistrements écrits
2147479552 octets (2,1 GB, 2,0 GiB) copiés, 45,7031 s, 47,0 MB/s
Clé usb 3.0 16 GiB : 15 MB/s
$ sync; sudo dd if=/dev/zero of=~/mnt/test bs=1GiB count=2 oflag=direct
2+0 enregistrements lus
2+0 enregistrements écrits
1073741824 octets (1,1 GB, 1,0 GiB) copiés, 70,5735 s, 15,2 MB/s
$ sudo rm /mnt/test
Clé usb 2.0 16GiB "premier prix" ; 12 MB/s
$ sync; sudo dd if=/dev/zero of=/mnt/test bs=1GiB count=1 oflag=direct $ sync; sudo dd if=/dev/zero of=/mnt/test bs=1GiB count=1 oflag=direct
1+0 enregistrements lus
1+0 enregistrements écrits
1073741824 octets (1,1 GB, 1,0 GiB) copiés, 87,4244 s, 12,3 MB/
$ sudo rm /mnt/test