• # Mesurer les I/O aléatoires et de tailles multiples

    Posté par (site web personnel, Mastodon) . En réponse au journal HOW TO : Bench this SSD. Évalué à 10.

    Personnellement je préfère m'intéresser aux I/O selon leurs tailles (en particulier les petites) et pas forcément séquentielles. Parce que je sais qu'à moins d'un défaut grave, le cas mesuré par dd (I/O de grandes tailles et séquentielles) ne vont pas poser problème.

    Un outil pratique pour ça, c'est iops (qui a un nom pourri pour le retrouver sur le net) et qui produit ce genre de résultats :

    Mon SSD

    $ sudo ./iops /dev/sda
    /dev/sda, 256.06 G, sectorsize=512B, #threads=32, pattern=random:
     512 B blocks: 97194.1 IO/s, 49.8 MB/s (398.1 Mbit/s)
     1 kB blocks: 67929.4 IO/s, 69.6 MB/s (556.5 Mbit/s)
     2 kB blocks: 44446.0 IO/s, 91.0 MB/s (728.2 Mbit/s)
     4 kB blocks: 26299.0 IO/s, 107.7 MB/s (861.8 Mbit/s)
     8 kB blocks: 25971.7 IO/s, 212.8 MB/s ( 1.7 Gbit/s)
     16 kB blocks: 15269.8 IO/s, 250.2 MB/s ( 2.0 Gbit/s)
     32 kB blocks: 8157.7 IO/s, 267.3 MB/s ( 2.1 Gbit/s)
     65 kB blocks: 4314.4 IO/s, 282.7 MB/s ( 2.3 Gbit/s)
     131 kB blocks: 2295.6 IO/s, 300.9 MB/s ( 2.4 Gbit/s)
     262 kB blocks: 1475.4 IO/s, 386.8 MB/s ( 3.1 Gbit/s)
     524 kB blocks: 894.7 IO/s, 469.1 MB/s ( 3.8 Gbit/s)
     1 MB blocks: 502.1 IO/s, 526.5 MB/s ( 4.2 Gbit/s)
     2 MB blocks: 265.6 IO/s, 557.1 MB/s ( 4.5 Gbit/s)
     4 MB blocks: 138.8 IO/s, 582.1 MB/s ( 4.7 Gbit/s)
     8 MB blocks: 69.6 IO/s, 583.4 MB/s ( 4.7 Gbit/s)
     16 MB blocks: 35.6 IO/s, 597.0 MB/s ( 4.8 Gbit/s)
     33 MB blocks: 17.7 IO/s, 593.3 MB/s ( 4.7 Gbit/s)
     67 MB blocks: 8.6 IO/s, 575.1 MB/s ( 4.6 Gbit/s)
     134 MB blocks: 4.4 IO/s, 591.8 MB/s ( 4.7 Gbit/s)

    Sur mon HDD 7200 rpm

    $ sudo ./iops /dev/sdb
    /dev/sdb, 500.11 G, sectorsize=4096B, #threads=32, pattern=random:
     512 B blocks: 105.8 IO/s, 54.2 kB/s (433.4 kbit/s)
     1 kB blocks: 113.4 IO/s, 116.1 kB/s (928.7 kbit/s)
     2 kB blocks: 122.8 IO/s, 251.5 kB/s ( 2.0 Mbit/s)
     4 kB blocks: 127.2 IO/s, 521.1 kB/s ( 4.2 Mbit/s)
     8 kB blocks: 126.1 IO/s, 1.0 MB/s ( 8.3 Mbit/s)
     16 kB blocks: 125.8 IO/s, 2.1 MB/s ( 16.5 Mbit/s)
     32 kB blocks: 122.5 IO/s, 4.0 MB/s ( 32.1 Mbit/s)
     65 kB blocks: 120.6 IO/s, 7.9 MB/s ( 63.2 Mbit/s)
     131 kB blocks: 117.2 IO/s, 15.4 MB/s (122.9 Mbit/s)
     262 kB blocks: 66.8 IO/s, 17.5 MB/s (140.2 Mbit/s)
     524 kB blocks: 38.4 IO/s, 20.1 MB/s (161.0 Mbit/s)
     1 MB blocks: 25.9 IO/s, 27.2 MB/s (217.3 Mbit/s)
     2 MB blocks: 15.0 IO/s, 31.5 MB/s (252.1 Mbit/s)
     4 MB blocks: 10.6 IO/s, 44.4 MB/s (355.5 Mbit/s)
     8 MB blocks: 5.5 IO/s, 46.2 MB/s (369.8 Mbit/s)

    Et pour le fun, sur la RAM (test limité par le CPU)

    $ sudo ./iops /dev/ram0
    /dev/ram0, 126.42 M, sectorsize=4096B, #threads=32, pattern=random:
     512 B blocks: 169253.2 IO/s, 86.7 MB/s (693.3 Mbit/s)
     1 kB blocks: 170916.2 IO/s, 175.0 MB/s ( 1.4 Gbit/s)
     2 kB blocks: 169963.8 IO/s, 348.1 MB/s ( 2.8 Gbit/s)
     4 kB blocks: 171712.1 IO/s, 703.3 MB/s ( 5.6 Gbit/s)
     8 kB blocks: 166601.5 IO/s, 1.4 GB/s ( 10.9 Gbit/s)
     16 kB blocks: 165693.6 IO/s, 2.7 GB/s ( 21.7 Gbit/s)
     32 kB blocks: 155599.9 IO/s, 5.1 GB/s ( 40.8 Gbit/s)
     65 kB blocks: 135273.5 IO/s, 8.9 GB/s ( 70.9 Gbit/s)
     131 kB blocks: 73579.7 IO/s, 9.6 GB/s ( 77.2 Gbit/s)
     262 kB blocks: 35860.6 IO/s, 9.4 GB/s ( 75.2 Gbit/s)
     524 kB blocks: 17558.8 IO/s, 9.2 GB/s ( 73.6 Gbit/s)
     1 MB blocks: 8830.1 IO/s, 9.3 GB/s ( 74.1 Gbit/s)
     2 MB blocks: 4505.4 IO/s, 9.4 GB/s ( 75.6 Gbit/s)
     4 MB blocks: 2426.2 IO/s, 10.2 GB/s ( 81.4 Gbit/s)
     8 MB blocks: 1263.4 IO/s, 10.6 GB/s ( 84.8 Gbit/s)
     16 MB blocks: 668.7 IO/s, 11.2 GB/s ( 89.8 Gbit/s)
     33 MB blocks: 239.9 IO/s, 8.0 GB/s ( 64.4 Gbit/s)
     67 MB blocks: 65.7 IO/s, 4.4 GB/s ( 35.3 Gbit/s)

    La connaissance libre : https://zestedesavoir.com