Considérations sur les performances des systèmes de fichiers

Effectué

Si vous avez exécuté des charges de travail HPC, il est probable que vous ayez rencontré les termes opérations, taille de bloc, IOPS, débit et latence. Vous avez probablement pris en compte ces facteurs lors du choix du stockage.

À la fin de cette section, vous aurez normalement une bonne compréhension de ces cinq facteurs de performance et de la façon dont ils affectent vos charges de travail HPC.

Operations

Les terme opérations fait référence à toute activité entre l’hôte/la machine et le système de fichiers ou le disque.

Par exemple, vous connaissez probablement ces opérations qui impliquent un système d’exploitation et son disque local :

  • Créer (un fichier)
  • Supprimer
  • Ouvrir
  • Fermer
  • Lire
  • Write
  • Ajouter
  • Obtenir un attribut
  • Définir un attribut
  • Renommer

NFS représente l’interaction au niveau du réseau entre un client et un serveur de fichiers. Notez que certaines de ces opérations semblent similaires aux opérations locales. Cependant, comme NFS est une API réseau, ces opérations réseau peuvent impliquer plusieurs opérations locales.

  • create (fichier ou lien)
  • mkdir
  • readdir ou readdirplus
  • getattr
  • setattr
  • lookup (rechercher un descripteur de fichier dans un répertoire)
  • link/symlink/readlink
  • read
  • rename
  • remove
  • rmdir
  • write

Comment les opérations affectent-elles le stockage HPC ?

Il est utile de comprendre comment les opérations affectent votre système de stockage. Par exemple, supposons que votre charge de travail HPC crée un grand nombre de petits fichiers dans des structures de répertoires imbriquées. Dans ce scénario, votre charge de travail nécessiterait un nombre d’opérations plus élevé que dans le cas d’une charge de travail lisant quelques grands fichiers séquentiels.

Nous présenterons ces modèles d’accès dans l’unité suivante. Une opération create implique plusieurs opérations, de sorte que plus votre charge de travail crée de fichiers, plus l’impact sur les performances est important.

Taille de bloc

La taille de bloc fait référence à la plus petite taille de données (en octets) qu’un système de fichiers peut lire ou écrire en une seule opération.

Dans notre cas, la taille de bloc fait également référence à la taille de la charge utile d’un bloc de données NFS (lecture/écriture) qui peut être transmis entre les clients et les serveurs NFS.

Les clients et les serveurs NFS négocient la taille de bloc et acceptent la plus grande taille qu’ils prennent en charge mutuellement. Les valeurs par défaut peuvent être comprises entre 4 Ko et 64 Ko. La valeur maximale actuellement configurable est de 1 Mo. Les paquets de données individuels ne peuvent pas avoir des charges utiles supérieures à la valeur définie.

Vous pouvez configurer explicitement la taille de bloc sur les clients. Vérifiez l’instruction mount complète sur les machines de votre cluster HPC pour déterminer sa valeur. Les tailles par défaut sont définies. Vous ne configurez pas explicitement ces valeurs dans l’instruction mount.

Les deux arguments utilisés pour configurer la taille de bloc NFS sont rsize (taille en lecture) et wsize (taille en écriture).

Si vous configurez une petite taille de bloc, ou si votre choix de systèmes de fichiers a une petite taille de bloc maximale, et que votre charge de travail est constituée de grands fichiers, les performances en pâtissent en raison de la fragmentation supplémentaire des grands fichiers.

IOPS

Le terme IOPS signifie Input/Output operations Per Second (Opérations d’entrée/sortie par seconde). Le nombre d’IOPS dans votre environnement de stockage dépend des attributs suivants :

  • Type de support de stockage. Par exemple, des lecteurs de disque dur (HDD) ou des disques SSD (Solid-State Drives).
  • Latence introduite par la connectivité réseau.
  • Taille de bloc utilisée par le système de fichiers.
  • Quantité d’accès simultanés disponible pour le système de fichiers.

Une solution de stockage a un nombre défini d’IOPS. Par exemple, si vous utilisez un disque managé Azure qui prend en charge 5 000 IOPS, vous pouvez avoir jusqu’à 5 000 opérations par seconde. Cependant, le nombre d’IOPS est une mesure de la valeur maximale totale pour toutes les opérations de lecture et d’écriture sur le disque, y compris les lectures et les écritures de la charge système.

Votre valeur d’IOPS est un guide quant au nombre maximal d’opérations possibles que votre environnement de disque ou de NAS peut prendre en charge.

Les mesures sont généralement décomposées en opérations de lecture et d’écriture aléatoires et séquentielles.

  • Une opération aléatoire est la lecture ou l’écriture de données à des points aléatoires différents d’un disque ou d’un fichier. Par exemple, la modification d’une plage d’octets spécifique quelque part dans un fichier.
  • Une opération séquentielle reflète l’accès contigu du fichier, en lisant le fichier à partir du début.

Débit

Le débit fait référence au taux de transfert total possible que le système de fichiers peut gérer, mesuré en octets par seconde.

Pour effectuer un calcul de base du débit, multipliez les IOPS du système par la taille de bloc.

Par exemple, si vous avez un disque qui prend en charge 3 000 IOPS et que votre taille de bloc est de 4 Ko, votre débit total possible est de 12 Mo/s.

Ce calcul donne une estimation de base des possibilités générales des performances de votre système de fichiers. Toutefois, le débit réel peut être différent. D’autres facteurs affectent le débit, notamment la surcharge du réseau si vous créez ou supprimez un grand nombre de petits fichiers.

Latence

La latence fait référence au temps requis pour effectuer une opération. Plus la latence est élevée, plus la probabilité d’une exécution plus lente des charges de travail est élevée.

Il peut y avoir plusieurs sources de latence au sein d’une même architecture, chacune contribuant à un effet global de latence.

La latence du système de fichiers peut se produire dans les conditions suivantes :

  • Connexion réseau lente entre le client et le serveur.
  • Congestion sur le réseau ou sur le serveur de fichiers, en raison d’un grand nombre de demandes simultanées.
  • Latence naturelle en raison de la distance entre les clients et les serveurs (par exemple, sur un réseau WAN).
  • Accès lent au sous-système de disque sur le serveur de fichiers lui-même.

La latence n’est pas toujours cohérente ou clairement documentée. Vous devez effectuer des tests pour déterminer la latence entre les machines de votre cluster HPC et le point de terminaison de stockage.

La latence est aussi un problème cumulatif. Les performances réseau peuvent y contribuer, mais d’autres facteurs sont possibles, tels qu’un système d’exploitation mal configuré sur une machine ou des inefficacités dans le code de la charge de travail proprement dit. Chacun de ces facteurs affecte la latence globale.

La latence est le facteur le plus important quand vous évaluez les performances réelles de votre système de fichiers. Des latences plus élevées se traduisent par moins d’IOPS. Moins d’IOPS peuvent se traduire par un débit inférieur.

Tester et calculer les valeurs de référence

Quand vous choisissez la configuration exacte des performances pour les charges de travail HPC, la charge de travail proprement dite a une influence majeure.

Les offres de systèmes de fichiers Azure présentent les valeurs d’IOPS et de débit attendues. Si vous choisissez de créer votre propre solution NAS, utilisez les métriques documentées pour chaque référence SKU de machine virtuelle et de disque managé.

Vous pouvez utiliser une configuration HPC de centre de données local comme point de départ pour les attentes en matière de performances. Gardez à l’esprit que les solutions cloud vous permettent de créer plusieurs environnements qui exécutent des charges de travail. Vous pouvez ainsi bénéficier d’une plus grande flexibilité par charge de travail dans Azure. En revanche, votre environnement local a été créé en fonction d’une capacité spécifique qui n’est pas étendue facilement (dynamiquement).

Vous pouvez utiliser des outils de base comme ping, fio, iozone et iometer pour déterminer les valeurs de la base de référence de votre système de fichiers Azure.

Profilage des applications

Vous pouvez avoir une charge de travail avec des E/S intensives qui nécessite des IOPS et un débit importants pour s’exécuter efficacement. Ou, votre charge de travail peut se lancer, lire des bibliothèques et des données sources en mémoire, et continuer avec des E/S de stockage minimales. La première charge de travail de la liste précédente écrit peut-être des données intermédiaires que d’autres machines HPC doivent lire. Chacune de ces dynamiques contribue à la façon dont vous abordez votre solution de stockage. Pour faire en sorte que les machines puissent lire ces données aussi vite que possible, concentrez-vous sur la réduction de la latence des lectures. Cependant, si votre charge de travail écrit des informations intermédiaires (comme un brouillon) sur les disques, vous voulez que chaque machine HPC puisse accéder rapidement à des disques locaux ou à une solution NAS rapide et partagée pour ces écritures, en fonction des machines qui ont besoin de lire ces écritures intermédiaires.

Vous voulez probablement investir du temps dans le profilage de vos applications pour leur utilisation des E/S de stockage. Le profilage gagne en importance au fil de la croissance de votre cluster HPC en taille et en nombre de charges de travail.

Le profilage implique l’utilisation d’outils qui s’exécutent sur vos machines HPC et sur votre environnement de stockage. Ces outils indiquent la quantité, le type et la taille des opérations exécutées sur votre environnement de stockage.

Le profilage d’une charge de travail peut être difficile en raison de la quantité de données qui peuvent être générées. Des outils comme iostat et sar peuvent créer une sortie importante au fil du temps. Il peut être nécessaire d’analyser les résultats, parfois même de façon approfondie, pour générer des histogrammes.

Si vous utilisez une solution NAS, vous devez collecter des statistiques auprès de l’interface du fournisseur lors l’exécution de vos profilages. Ensuite, mettez en corrélation ces informations avec les données des machines HPC pour vérifier les modèles d’E/S.

Des outils de profilage tiers sont disponibles pour faciliter l’analyse des E/S, certains étant proposés par les fournisseurs d’applications HPC.

Vérifiez vos connaissances

1.

De petites tailles de bloc diminuent les performances si vos fichiers sont :

2.

Si vous avez un disque qui prend en charge 5 000 IOPS et que votre taille de bloc est de 4 Ko, votre débit total possible est :