Mesurer la vitesse générale d'un périphérique de stockage n'est pas une tâche compliquée. Avec une copie de CrystalDiskMark, l'ancienne version gratuite de HD Tune ou un autre logiciel similaire suffit. Cependant, certains utilisateurs doivent évaluer leur matériel dans des conditions plus spécifiques, avec des charges de travail bien définies. C'est là qu'intervient l'outil FIO.
Un point souvent critiqué parmi les benchmarks les plus populaires est leur profil synthétique. D'un certain point de vue, utiliser un benchmark fixe, répétitif et invariable est utile car cela permet d'étendre le même « package de règles » sur plusieurs configurations matérielles, mais il y a des occasions où cet avantage s'effondre. Par exemple, un disque dur travaillant dans un système de bureau n'est pas la même chose que dans un serveur avec des charges de travail complètement différentes.
Cela signifie que sous des programmes comme CrystalDiskMark ou le classique HD Tune, ce que nous recevons en réalité sont des « opinions très polies » sur la performance d'un disque ou d'un SSD, tandis qu'en arrière-plan, il peut y avoir des goulots d'étranglement, des bugs de pilotes et d'autres erreurs de configuration qui attendent de tout gâcher. Comment les détecter ? Avec un benchmark super flexible, avancé et capable de reproduire presque n'importe quelle charge de travail : FIO.
Alors… s'il est si bon, pourquoi n'est-il pas plus célèbre ? La réponse est simple : ce n'est pas un benchmark pensé pour l'utilisateur commun. Il n'a pas d'interface graphique, ni d'assistant qui explique chacun de ses paramètres. Avec FIO, vous devez savoir exactement ce que vous voulez évaluer et ne pas attendre d'aide pour y parvenir. FIO se comporte comme un simulateur/couteau suisse, une « navette multiusage » qui a évité à son développeur le mal de tête de créer un benchmark individuel pour chaque charge de travail. Mais une telle flexibilité se reflète dans les modificateurs nécessaires à son exécution. Par exemple :
fio --name=random-write --ioengine=windowsaio --rw=randwrite --bs=4k --numjobs=1 --size=4g --iodepth=1 --runtime=60 --time_based --end_fsync=1
- «Name» est le nom que portera le fichier généré pendant le benchmark.
- «IOEngine» définit le mode dans lequel FIO interagit avec le système de fichiers (sous Windows c'est «windowsaio», pour le reste c'est «posixaio»).
- «--rw=randwrite» indique que nous voulons évaluer des opérations aléatoires d'écriture.
- «--bs=4k» est la taille du bloc, 4K, une véritable torture pour de nombreux supports de stockage.
- «--size=4g» configure la taille du fichier, 4 gigaoctets.
- «--numjobs=1» ordonne la création d'un seul fichier, et un seul processus dans ce fichier.
- «--iodepth=1» est la profondeur pour empiler des commandes dans la file d'attente du système d'exploitation (équivaut à une opération à la fois).
- «--runtime=60» est le temps d'exécution, 60 secondes.
- «--end_fsync=1» maintient le compteur actif jusqu'à ce que toutes les opérations aient été complétées.
Le résultat final apparaît sous la légende « Run Status Group » : dans mon cas, FIO a pris 87,230 millisecondes pour écrire un total de 6 307 « mébioctets » (c'est-à-dire base 1 024), ce qui se traduit par environ 72,3 « mébioctets » par seconde, quelque chose entre bas et normal pour un SSD courant.
Voulez-vous en savoir plus sur FIO ? Si oui, les gens d'Ars Technica ont publié un excellent guide, mais la recommandation numéro un reste de lire la documentation officielle. Rappelez-vous : FIO fonctionne très bien, mais il n'enseigne ni n'explique. Pour le maîtriser, vous devrez vous salir les mains.
Site officiel et téléchargements : Cliquez ici
Source : Ars Technica