Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

Partie 1. À propos du processeur
Partie 2. À propos de la mémoire

Aujourd'hui, nous analyserons les métriques du sous-système de disque dans vSphere. Un problème de stockage est la raison la plus courante d’une machine virtuelle lente. Si, dans le cas du CPU et de la RAM, le dépannage se termine au niveau de l'hyperviseur, alors s'il y a des problèmes avec le disque, vous devrez peut-être vous occuper du réseau de données et du système de stockage.

J'aborderai le sujet en utilisant l'exemple du blocage de l'accès aux systèmes de stockage, bien que pour l'accès aux fichiers, les compteurs soient à peu près les mêmes.

Un peu de théorie

Lorsqu'on parle des performances du sous-système de disque des machines virtuelles, les gens prêtent généralement attention à trois paramètres interdépendants :

  • nombre d'opérations d'entrée/sortie (Opérations d'entrée/sortie par seconde, IOPS) ;
  • débit;
  • délai des opérations d’entrée/sortie (Latence).

Nombre d'IOPS généralement important pour les charges de travail aléatoires : accès à des blocs de disque situés à différents endroits. Un exemple d'une telle charge pourrait être les bases de données, les applications métiers (ERP, CRM), etc.

Bande passante important pour les chargements séquentiels : accès aux blocs situés les uns à la suite des autres. Par exemple, les serveurs de fichiers (mais pas toujours) et les systèmes de vidéosurveillance peuvent générer une telle charge.

Le débit est lié au nombre d'opérations d'E/S comme suit :

Débit = IOPS * Taille du bloc, où Taille du bloc est la taille du bloc.

La taille des blocs est une caractéristique assez importante. Les versions modernes d'ESXi autorisent des blocs d'une taille allant jusqu'à 32 767 Ko. Si le bloc est encore plus grand, il est divisé en plusieurs. Tous les systèmes de stockage ne peuvent pas fonctionner efficacement avec des blocs aussi volumineux. Il existe donc un paramètre DiskMaxIOSize dans les paramètres avancés d'ESXi. En l'utilisant, vous pouvez réduire la taille maximale des blocs ignorés par l'hyperviseur (plus de détails ici). Avant de modifier ce paramètre, je vous recommande de consulter le fabricant du système de stockage ou au moins de tester les modifications sur un banc de laboratoire. 

Une taille de bloc importante peut avoir un effet néfaste sur les performances de stockage. Même si le nombre d’IOPS et le débit sont relativement faibles, des latences élevées peuvent être observées avec une taille de bloc importante. Faites donc attention à ce paramètre.

Latence – le paramètre de performance le plus intéressant. La latence d'E/S d'une machine virtuelle comprend :

  • délais à l'intérieur de l'hyperviseur (KAVG, Average Kernel MilliSec/Read) ;
  • délai fourni par le réseau de données et le système de stockage (DAVG, Average Driver MilliSec/Command).

La latence totale visible dans le système d'exploitation invité (GAVG, Average Guest MilliSec/Command) est la somme de KAVG et DAVG.

GAVG et DAVG sont mesurés et KAVG est calculé : GAVG – DAVG.

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage
Source

Regardons de plus près KAVG. En fonctionnement normal, KAVG devrait tendre vers zéro ou au moins être bien inférieur à DAVG. Le seul cas que je connaisse où KAVG est censé être élevé est la limite d'IOPS sur le disque de la VM. Dans ce cas, lorsque vous essayez de dépasser la limite, le KAVG augmentera.

Le composant le plus important de KAVG est QAVG - le temps d'attente de traitement à l'intérieur de l'hyperviseur. Les composants restants du KAVG sont négligeables.

La file d'attente dans le pilote de l'adaptateur de disque et la file d'attente vers les lunes ont une taille fixe. Pour les environnements très chargés, il peut être utile d'augmenter cette taille. il est décrit comment augmenter les files d'attente dans le pilote de l'adaptateur (en même temps, la file d'attente vers les lunes augmentera). Ce paramètre fonctionne lorsqu'une seule VM fonctionne avec la lune, ce qui est rare. S'il y a plusieurs VM sur la lune, il faut aussi augmenter le paramètre Disk.SchedNumReqOutstanding (instructions  ici). En augmentant la file d'attente, vous diminuez respectivement QAVG et KAVG.

Mais encore une fois, lisez d’abord la documentation du fournisseur de HBA et testez les modifications sur une paillasse de laboratoire.

La taille de la file d'attente vers la Lune peut être affectée par l'inclusion du mécanisme SIOC (Storage I/O Control). Il fournit un accès uniforme à la Lune depuis tous les serveurs du cluster en modifiant dynamiquement la file d'attente vers la Lune sur les serveurs. Autrement dit, si l'un des hôtes exécute une VM qui nécessite une quantité disproportionnée de performances (VM voisine bruyante), SIOC réduit la longueur de la file d'attente à la lune sur cet hôte (DQLEN). Plus de détails ici.

Nous avons réglé KAVG, maintenant un peu sur DAVG. Tout est simple ici : DAVG est le retard introduit par l'environnement externe (réseau de données et système de stockage). Chaque système de stockage moderne et moins moderne possède ses propres compteurs de performances. Pour analyser les problèmes avec DAVG, il est logique de les examiner. Si tout va bien côté ESXi et stockage, vérifiez le réseau de données.

Pour éviter les problèmes de performances, choisissez la stratégie de sélection de chemin (PSP) appropriée pour votre système de stockage. Presque tous les systèmes de stockage modernes prennent en charge PSP Round-Robin (avec ou sans ALUA, Aometric Logical Unit Access). Cette stratégie vous permet d'utiliser tous les chemins disponibles vers le système de stockage. Dans le cas d’ALUA, seuls les chemins vers le contrôleur propriétaire de la lune sont utilisés. Tous les systèmes de stockage sur ESXi n'ont pas de règles par défaut qui définissent la stratégie Round-Robin. S'il n'y a pas de règle pour votre système de stockage, utilisez un plugin du fabricant du système de stockage, qui créera une règle correspondante sur tous les hôtes du cluster, ou créez vous-même une règle. Détails ici

En outre, certains fabricants de systèmes de stockage recommandent de modifier le nombre d'IOPS par chemin de la valeur standard de 1000 1 à XNUMX. Dans notre pratique, cela a permis de « extraire » plus de performances du système de stockage et de réduire considérablement le temps requis pour le basculement. en cas de panne ou de mise à jour du contrôleur. Vérifiez les recommandations du fournisseur et s'il n'y a pas de contre-indications, essayez de modifier ce paramètre. Détails ici.

Compteurs de performances de base du sous-système de disque de machine virtuelle

Les compteurs de performances du sous-système de disque dans vCenter sont collectés dans les sections Banque de données, Disque et Disque virtuel :

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

Dans la section Datastore il existe des métriques pour les stockages de disques vSphere (banques de données) sur lesquels se trouvent les disques de VM. Vous trouverez ici des compteurs standards pour :

  • IOPS (Moyenne des requêtes de lecture/écriture par seconde), 
  • débit (taux de lecture/écriture), 
  • délais (lecture/écriture/latence la plus élevée).

En principe, tout ressort clairement des noms des compteurs. Permettez-moi d'attirer une fois de plus votre attention sur le fait que les statistiques ici ne concernent pas une VM spécifique (ou un disque de VM), mais des statistiques générales pour l'ensemble de la banque de données. À mon avis, il est plus pratique de consulter ces statistiques dans ESXTOP, du moins sur la base du fait que la période de mesure minimale est de 2 secondes.

Dans la section Disque il existe des métriques sur les périphériques de bloc qui sont utilisées par la VM. Il existe des compteurs d'IOPS de type sommation (le nombre d'opérations d'entrée/sortie pendant la période de mesure) et plusieurs compteurs liés aux accès au bloc (Commandes abandonnées, Réinitialisations du bus). À mon avis, il est également plus pratique de visualiser ces informations dans ESXTOP.

Section Disque virtuel – le plus utile du point de vue de la détection des problèmes de performances du sous-système de disque de la VM. Ici vous pouvez voir les performances de chaque disque virtuel. Ce sont ces informations qui sont nécessaires pour comprendre si une machine virtuelle particulière a un problème. En plus des compteurs standard pour le nombre d'opérations d'E/S, le volume de lecture/écriture et les délais, cette section contient des compteurs utiles qui affichent la taille du bloc : taille de la requête de lecture/écriture.

Dans l'image ci-dessous se trouve un graphique des performances du disque de la VM, où vous pouvez voir le nombre d'IOPS, la latence et la taille des blocs. 

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

Vous pouvez également afficher les mesures de performances pour l'ensemble de la banque de données si SIOC est activé. Voici des informations de base sur la latence moyenne et les IOPS. Par défaut, ces informations ne peuvent être consultées qu'en temps réel.

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

ESXTOP

ESXTOP comporte plusieurs écrans qui fournissent des informations sur le sous-système de disque hôte dans son ensemble, les machines virtuelles individuelles et leurs disques.

Commençons par les informations sur les machines virtuelles. L'écran « Disk VM » est appelé avec la touche « v » :

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

DISQUE NV est le nombre de disques de VM. Pour afficher les informations sur chaque disque, appuyez sur « e » et entrez le GID de la VM qui vous intéresse.

La signification des paramètres restants sur cet écran ressort clairement de leurs noms.

Un autre écran utile lors du dépannage est l'adaptateur de disque. Appelé par la touche « d » (les champs A,B,C,D,E,G sont sélectionnés dans l'image ci-dessous) :

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

NPTH – le nombre de chemins vers les lunes visibles depuis cet adaptateur. Pour obtenir des informations sur chaque chemin sur l'adaptateur, appuyez sur « e » et entrez le nom de l'adaptateur :

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

AQLEN – taille maximale de la file d'attente sur l'adaptateur.

Sur cet écran se trouvent également les compteurs de retard dont j'ai parlé ci-dessus : KAVG/cmd, GAVG/cmd, DAVG/cmd, QAVG/cmd.

L'écran du périphérique de disque, qui est appelé en appuyant sur la touche « u », fournit des informations sur les périphériques de bloc individuels - les lunes (les champs A, B, F, G, I sont sélectionnés dans l'image ci-dessous). Ici vous pouvez voir l'état de la file d'attente pour les lunes.

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

DQLEN – taille de la file d'attente pour un périphérique bloc.
ACTV – nombre de commandes d'E/S dans le noyau ESXi.
QUÉ – nombre de commandes d'E/S dans la file d'attente.
%USD – ACTV/DQLEN × 100 %.
CHARGE – (ACTV + QUED)/DQLEN.

Si le %USD est élevé, vous devriez envisager d’augmenter la file d’attente. Plus il y a de commandes dans la file d'attente, plus le QAVG et, par conséquent, le KAVG sont élevés.

Vous pouvez également voir sur l'écran du périphérique de disque si VAAI (vStorage API for Array Integration) est en cours d'exécution sur le système de stockage. Pour cela, sélectionnez les champs A et O.

Le mécanisme VAAI vous permet de transférer une partie du travail de l'hyperviseur directement vers le système de stockage, par exemple la remise à zéro, la copie de blocs ou le blocage.

Analyse des performances des VM dans VMware vSphere. Partie 3 : Stockage

Comme vous pouvez le voir sur l'image ci-dessus, VAAI fonctionne sur ce système de stockage : les primitives Zero et ATS sont activement utilisées.

Conseils pour optimiser le travail avec le sous-système de disque sur ESXi

  • Faites attention à la taille du bloc.
  • Définissez la taille de file d'attente optimale sur le HBA.
  • N'oubliez pas d'activer SIOC sur les banques de données.
  • Choisissez une PSP conformément aux recommandations du fabricant du système de stockage.
  • Assurez-vous que VAAI fonctionne.

Articles utiles sur le sujet:http://www.yellow-bricks.com/2011/06/23/disk-schednumreqoutstanding-the-story/
http://www.yellow-bricks.com/2009/09/29/whats-that-alua-exactly/
http://www.yellow-bricks.com/2019/03/05/dqlen-changes-what-is-going-on/
https://www.codyhosterman.com/2017/02/understanding-vmware-esxi-queuing-and-the-flasharray/
https://www.codyhosterman.com/2018/03/what-is-the-latency-stat-qavg/
https://kb.vmware.com/s/article/1267
https://kb.vmware.com/s/article/1268
https://kb.vmware.com/s/article/1027901
https://kb.vmware.com/s/article/2069356
https://kb.vmware.com/s/article/2053628
https://kb.vmware.com/s/article/1003469
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/vsphere-esxi-vcenter-server-67-performance-best-practices.pdf

Source: habr.com

Ajouter un commentaire