Partager via


Considérations relatives aux performances pour le stockage Azure NetApp Files avec un accès sporadique

Les jeux de données ne sont pas toujours utilisés activement. Jusqu’à 80 % des données d’un jeu peuvent être considérées comme « sporadique », ce qui signifie qu’elles ne sont pas actuellement utilisées ou n’ont pas été consultées récemment. Lors du stockage de données sur un stockage hautes performances comme Azure NetApp Files, l’argent dépensé sur la capacité utilisée est essentiellement gaspiller, car les données sporadiques ne nécessitent pas de stockage hautes performances tant qu’elles n’ont pas été consultées à nouveau.

Le stockage Azure NetApp Files avec accès sporadique est destiné à réduire les coûts de stockage cloud dans Azure. Il existe des considérations sur les performances dans des cas d’usage spécifiques qui doivent être pris en compte.

L’accès aux données déplacées vers les niveaux d’accès sporadique entraîne davantage de latence, en particulier pour les E/S aléatoires. Dans le pire des cas, toutes les données accessibles peuvent se trouver sur le niveau sporadique. Chaque demande doit donc effectuer une récupération des données. Il est rare que toutes les données d’un jeu de données utilisé activement soient dans le niveau sporadique. Il est donc peu probable d’observer une telle latence.

Lorsque la stratégie de récupération d’accès sporadique par défaut est sélectionnée, les lectures d’E/S séquentielles sont traitées directement à partir du niveau d’accès sporadique et ne sont pas renseignées dans le niveau d’accès chaud. Les données lues de façon aléatoire sont remplies à nouveau dans le niveau d’accès chaud, ce qui augmente les performances des lectures suivantes. Les optimisations pour les charges de travail séquentielles réduisent souvent la latence engendrée par la récupération cloud par rapport aux lectures aléatoires et améliorent les performances globales.

Dans un test récent effectué à l’aide du stockage Standard avec un accès sporadique pour Azure NetApp Files, les résultats suivants ont été obtenus.

Lectures séquentielles de 100 % sur le niveau d’accès chaud/sporadique (travail unique)

Dans le scénario suivant, un seul travail sur une machine virtuelle D32_V5 a été utilisé sur un volume Azure NetApp Files de 50 Tio à l’aide du niveau de performances Ultra. Différentes tailles de bloc ont été utilisées pour tester les performances sur les niveaux d’accès chaud et sporadique.

Remarque

Le maximum pour le niveau de service Ultra est de 128 Mio/s par tébioctet de capacité allouée. Un volume standard Azure NetApp Files peut gérer un débit pouvant atteindre environ 5 000 Mio/s.

Le graphique suivant montre les performances de niveau d’accès sporadique pour ce test à l’aide d’une variété de profondeurs de file d’attente. Le débit maximal d’une seule machine virtuelle était d’environ 400 Mio/s.

Graphique du débit de niveau d’accès sporadique à différentes tailles de bloc.

Les performances de niveau d’accès chaud étaient environ 2,75x mieux, ce qui est limité à environ 11 180 Mio/s.

Graphique du débit de niveau d’accès chaud à différentes tailles de bloc.

Ce graphique montre une comparaison côte à côte des performances de niveau d’accès sporadique et chaud avec une taille de bloc de 256 Ko.

Graphique du débit à différents « iodepths » avec un seul travail.

Lectures séquentielles de 100 % sur le niveau d’accès chaud/sporadique (plusieurs travaux)

Pour ce scénario, le test a été effectué avec 16 travaux à l’aide d’une taille de bloc de 256=Ko sur une seule machine virtuelle D32_V5 sur un volume Azure NetApp Files de 50 Tio à l’aide du niveau de performances Ultra.

Remarque

Le maximum pour le niveau de service Ultra est de 128 Mio/s par tébioctet de capacité allouée. Un volume standard Azure NetApp Files peut gérer un débit d’environ 5 000 Mio/s.

Il est possible d’envoyer (push) davantage de débit pour les niveaux d’accès chaud et sporadique à l’aide d’une seule machine virtuelle lors de l’exécution de plusieurs travaux. La différence de performances entre les niveaux d’accès chaud et sporadique est moins radicale lors de l’exécution de plusieurs travaux. Le graphique suivant affiche les résultats des niveaux d’accès chaud et sporadique lors de l’exécution de 16 travaux avec 16 threads à une taille de bloc de 256 Ko.

Graphique du débit à différents « iodepths » avec 16 travaux.

  • Le débit a été amélioré de près de trois fois pour le niveau d’accès chaud.
  • Débit amélioré de 6,5 fois pour le niveau d’accès sporadique.
  • La différence de performances pour le niveau d’accès chaud et sporadique a diminué de 2,9x à seulement 1,3x.

Échelle maximale viable des travaux pour le niveau d’accès sporadique : lectures séquentielles de 100 %

Le niveau d’accès sporadique a une limite du nombre de travaux pouvant être envoyés vers un seul volume Azure NetApp Files avant que la latence ne commence à atteindre des niveaux généralement inutilisables pour la plupart des charges de travail.

Dans le cas d’une hiérarchisation de niveau d’accès sporadique, cette limite est d’environ 16 travaux dont la profondeur de file d’attente n’est pas supérieure à 15. Le graphique suivant montre que les pics de latence d’environ 23 millisecondes (ms) avec 16 travaux/15 profondeur de file d’attente avec un débit légèrement inférieur à celui d’une profondeur de file d’attente de 14. Les pics de latence sont aussi élevés qu’environ 63 ms lors de l’envoi de 32 travaux et le débit diminue d’environ 14 %.

Graphique du débit et de la latence pour les tests avec 16 travaux.

Quelles sont les causes de la latence dans les niveaux d’accès chaud et sporadique ?

La latence dans le niveau d’accès d’accès chaud est un facteur du système de stockage lui-même, où les ressources système sont épuisées lorsque plus d’E/S sont envoyées au service que peuvent être gérées à tout moment. Par conséquent, les opérations doivent être mises en file d’attente jusqu’à ce que les opérations précédemment envoyées puissent être terminées.

La latence dans le niveau d’accès sporadique est généralement observée avec les opérations de récupération cloud : les requêtes sur le réseau pour les E/S vers le magasin d’objets (charges de travail séquentielles) ou la réactivation de bloc d’accès sporadique dans le niveau d’accès chaud (charges de travail aléatoires).

Charge de travail mixte : séquentielle et aléatoire

Une charge de travail mixte contient des modèles d’E/S aléatoires et séquentiels. Dans les charges de travail mixtes, les profils de performances pour les niveaux d’accès chaud et sporadique peuvent avoir des résultats radicalement différents par rapport à une charge de travail d’E/S purement séquentielle, mais sont très similaires à une charge de travail qui est aléatoire de 100 %.

Le graphique suivant montre les résultats utilisant 16 travaux sur une seule machine virtuelle avec une profondeur de file d’attente d’un et différents ratios aléatoires/séquentiels.

Graphique montrant le débit pour les charges de travail mixtes.

L’impact sur les performances lors du mélange de charges de travail peut également être observé lors de l’analyse de la latence à mesure que la combinaison de charges de travail change. Les graphiques montrent comment l’impact de la latence pour les niveaux d’accès sporadique et chaud à mesure que la combinaison de charges de travail passe de 100 % séquentiel à 100 % aléatoire. La latence commence à augmenter pour le niveau d’accès sporadique à environ 60/40 mix séquentiel/aléatoire (supérieur à 12 ms), tandis que la latence reste la même (moins de 2 ms) pour le niveau d’accès chaud.

Graphique montrant le débit et la latence pour les charges de travail mixtes.

Résumé des résultats

  • Lorsqu’une charge de travail est séquentielle de 100 %, le débit du niveau d’accès sporadique diminue d’environ 47 % par rapport au niveau d’accès chaud (3330 Mio/s par rapport à 1742 Mio/s).
  • Lorsqu’une charge de travail est aléatoire de 100 %, le débit du niveau d’accès sporadique diminue d’environ 88 % par rapport au niveau d’accès (2 479 Mio/s par rapport à 280 Mio/s).
  • La baisse des performances pour le niveau d’accès chaud lors de l’exécution de charges de travail séquentielles de 100 % (3 330 Mio/s) et de 100 % aléatoires (2 479 Mio/s) était d’environ 25 %. La baisse des performances du niveau d’accès sporadique lors de l’exécution de charges de travail séquentielles de 1 742 Mio/s et de 100 % aléatoires (280 Mio/s) était d’environ 88 %.
  • Le débit de niveau d’accès chaud gère environ 2 300 Mio/s, quelle que soit la combinaison de charges de travail.
  • Lorsqu’une charge de travail contient un pourcentage d’E/S aléatoires, le débit global du niveau d’accès sporadique est plus proche de 100 % aléatoire que 100 % séquentiel.
  • Les lectures du niveau d’accès sporadique ont chuté d’environ 50 % lors du passage de 100 % séquentiel à un mélange séquentiel/aléatoire de 80/20.
  • Les E/S séquentielles peuvent tirer parti d’un cache readahead dans Azure NetApp Files qui n’effectue pas d’E/S aléatoires. Cet avantage pour les E/S séquentielles permet de réduire les différences globales de performances entre les niveaux d’accès chaud et sporadique.

Recommandations générales

Pour éviter les performances des scénarios les plus graves avec un accès d’accès sporadique dans Azure NetApp Files, suivez les recommandations suivantes :

  • Si votre charge de travail modifie fréquemment les modèles d’accès de manière imprévisible, l’accès d’accès sporadique peut ne pas être idéal en raison des différences de performances entre les niveaux d’accès chaud et sporadique.
  • Si votre charge de travail contient un pourcentage d’E/S aléatoires, les attentes en matière de performances lors de l’accès aux données sur le niveau d’accès sporadique doivent être ajustées en conséquence.
  • Configurez la fenêtre de refroidissement et les paramètres de récupération d’accès sporadique pour qu’ils correspondent à vos modèles de charge de travail et pour réduire la quantité de récupération de niveau d’accès sporadique.

Étapes suivantes