Partager via


Comprendre la méthodologie des tests de performance dans Azure NetApp Files

L’outil d’évaluation des performances utilisé dans ces tests est appelé Testeur d’E/S flexible (FIO).

Lors du test des limites de performances pour le stockage, la génération de charge de travail doit être fortement parallélisée pour obtenir les résultats maximum possibles.

Cela signifie que :

  • un, à de nombreux clients
  • processeurs multiples
  • plusieurs threads
  • exécution d’E/S sur plusieurs fichiers
  • connexions réseau à plusieurs threads (telles que nconnect)

L’objectif final est de pousser le système de stockage autant que possible avant que les opérations ne commencent à attendre que d’autres opérations se terminent. L’utilisation d’un seul client parcourant un flux réseau unique, ou la lecture/écriture depuis/vers un seul fichier (par exemple, à l’aide de dd ou de diskspd sur un seul client) ne fournit pas de résultats indicatifs de la capacité d’Azure NetApp Files. Ces configurations montrent plutôt les performances d’un seul fichier, qui s’aligne généralement avec la vitesse (en bauds) et/ou les paramètres QoS du fichier Azure NetApp.

En outre, la mise en cache doit être réduite autant que possible pour obtenir des résultats précis et représentatifs des performances du stockage. Toutefois, la mise en cache est un outil très utile permettant aux applications modernes de s’exécuter au mieux. Ceux-ci couvrent les scénarios comprenant une mise en cache et une mise en cache contournée pour les charges de travail d’E/S aléatoires à l’aide de la randomisation de la charge de travail via des options FIO (en particulier, randrepeat=0 pour empêcher la mise en cache sur le stockage et directio pour empêcher la mise en cache du client).

À propos du testeur d’E/S flexible

Le testeur d’E/S flexible (FIO) est un outil de génération de charge de travail open source couramment utilisé pour l’évaluation des performances du stockage en raison de sa facilité d’utilisation et de sa flexibilité dans la définition des modèles de charge de travail. Pour plus d’informations sur son utilisation avec Azure NetApp Files, consultez Recommandations pour les tests d’évaluation des performances d’Azure NetApp Files.

Installation de l’outil FIO

Consultez la section relative aux packages binaires dans le fichier README de FIO pour installer l’outil sur la plateforme de votre choix.

Exemples d’IOPS pour FIO

Dans cette section, ces exemples utilisent la configuration suivante :

  • Taille d’instance de machine virtuelle : D32s_v3
  • Taille et niveau de service du pool de capacité : Premium / 50 Tio
  • Taille de quota du volume : 48 Tio

Les exemples suivants montrent le nombre de lectures et d’écritures aléatoires de l’outil FIO.

FIO : taille de bloc de 8 Ko, 100 % de lectures aléatoires

fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO : taille de bloc de 8 Ko, 100 % d’écritures aléatoires

fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Résultats du point de référence

Pour obtenir les résultats du benchmark officiel sur la façon dont FIO fonctionne dans Azure NetApp Files, consultez Benchmarks de performances Azure NetApp Files pour Linux.

Exemples de bande passante pour FIO

Les exemples de cette section montrent le nombre de lectures et d’écritures séquentielles de l’outil FIO.

FIO : taille de bloc de 64 Ko, 100 % de lectures séquentielles

fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO : taille de bloc de 64 Ko, 100 % d’écritures séquentielles

fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Résultats du point de référence

Pour obtenir les résultats du benchmark officiel sur la façon dont FIO fonctionne dans Azure NetApp Files, consultez Benchmarks de performances Azure NetApp Files pour Linux.

Mise en cache avec FIO

FIO peut être exécuté avec des options spécifiques pour contrôler la façon dont un test d’évaluation des performances lit et écrit des fichiers. Dans les tests d’évaluation des performances avec la mise en cache exclue, l’indicateur FIO randrepeat=0 a été utilisé pour éviter la mise en cache en exécutant une charge de travail vraiment aléatoire plutôt qu’un modèle répété.

[randrepeat]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)

Par défaut, lorsque randrepeat n’est pas défini, l’outil FIO définit la valeur sur « true », ce qui signifie que les données produites dans les fichiers ne sont pas vraiment aléatoires. Par conséquent, les caches du système de fichiers ne sont pas utilisés pour améliorer les performances globales de la charge de travail.

Dans les tests d’évaluation des performances antérieurs pour Azure NetApp Files, randrepeat n’était pas défini. Une mise en cache du système de fichiers a donc été implémentée. Dans les tests plus récents, cette option est définie sur « 0 » (false) pour garantir une randomisation adéquate dans les données pour éviter les caches de système de fichiers dans le service Azure NetApp Files. Cette modification entraîne des résultats généraux légèrement inférieurs, mais il s’agit d’une représentation plus précise des capacités du service de stockage en cas de contournement de la mise en cache.

Étapes suivantes