Analyse des performances des machines virtuelles dans VMware vSphere. Partie 3: Stockage



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

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

J'analyserai le sujet sur l'exemple de l'accès en bloc au stockage, bien qu'avec l'accès aux fichiers les compteurs soient à peu près les mêmes.

Un peu de théorie


Lorsque vous parlez des performances du sous-système de disque des machines virtuelles, faites généralement attention à trois paramètres connexes:

  • nombre d'opérations d'entrée / sortie (opérations d'entrée / sortie par seconde, IOPS);
  • bande passante (débit);
  • latence des opérations d'entrée / sortie (latence).

Le nombre d'IOPS est généralement important pour les charges de travail aléatoires: accès aux blocs sur disque situés à différents endroits. Les bases de données, les applications métier (ERP, CRM), etc. peuvent servir d'exemple d'une telle charge.

Le débit est important pour les charges séquentielles: accès aux blocs situés les uns après les 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 de bloc , où Taille de bloc est la taille du bloc.

La taille des blocs est une caractéristique assez importante. Les versions ESXi modernes autorisent des blocs d'une taille maximale de 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, donc Advanced Settings ESXi a le paramètre DiskMaxIOSize. En l'utilisant, vous pouvez réduire la taille maximale d'un bloc ignoré par l'hyperviseur (plus de détails ici ). Je vous recommande de consulter le fabricant des systèmes de stockage avant de modifier ce paramètre, ou au moins de tester les modifications sur le banc de laboratoire.

De grandes tailles de bloc peuvent affecter négativement les performances de stockage. Même si le nombre d'E / S par seconde et le débit sont relativement faibles, des latences élevées peuvent se produire avec une grande taille de bloc. Par conséquent, faites attention à ce paramètre.

La latence est le paramètre de performance le plus intéressant. La latence des opérations d'E / S pour une machine virtuelle est la somme de:

  • retards dans l'hyperviseur (KAVG, Average Kernel MilliSec / Read);
  • latence donnée par le réseau de données et le stockage (DAVG, Average Driver MilliSec / Command).

Le retard total visible dans l'OS 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.


Source

Arrêtons-nous sur KAVG . En fonctionnement normal, le KAVG devrait tendre à zéro, ou du moins être beaucoup plus petit que le DAVG. Le seul cas que je connaisse lorsque KAVG devrait être élevé est la limite IOPS sur le disque VM. Dans ce cas, lorsque vous essayez de dépasser la limite, KAVG augmentera.

Le composant le plus important de KAVG est QAVG - le temps dans la file d'attente pour le traitement à l'intérieur de l'hyperviseur. Les autres composants de KAVG sont négligeables.

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

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

L'activation du mécanisme SIOC (Storage I / O Control) peut affecter la taille de la file d'attente vers la lune. 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 une machine virtuelle s'exécute sur un hôte qui nécessite une quantité disproportionnée de performances (machine virtuelle voisine bruyante), SIOC réduit la longueur de la file d'attente jusqu'à la lune sur cet hôte (DQLEN). Plus de détails ici .

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

Pour éviter les problèmes de performances, choisissez la bonne stratégie de sélection de chemin (PSP) pour votre stockage. Presque tous les systèmes de stockage modernes prennent en charge PSP Round-Robin (avec ou sans ALUA, accès aux unités logiques asymétriques). Cette stratégie vous permet d'utiliser tous les chemins d'accès disponibles au 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 établissent la stratégie Round-Robin. S'il n'y a pas de règle pour votre système de stockage, utilisez le plug-in du fabricant de stockage qui créera la règle correspondante sur tous les hôtes du cluster, ou créez la règle vous-même. Détails ici .

De plus, certains fournisseurs de stockage recommandent de changer le nombre d'IOPS par chemin de la valeur standard de 1000 à 1. Dans notre pratique, cela nous a permis de «réduire» davantage les performances du stockage et de réduire considérablement le temps requis pour le basculement en cas de défaillance 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 d'une machine virtuelle


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



La section Banque de données contient des métriques pour les stockages de disques vSphere (banques de données) sur lesquels se trouvent les disques VM. Vous trouverez ici des compteurs standard pour:

  • IOPS (demandes de lecture / écriture moyennes par seconde),
  • bande passante (taux de lecture / écriture),
  • retards (lecture / écriture / latence la plus élevée).

D'après les noms des compteurs, en principe, tout est clair. Encore une fois, j'attirerai l'attention sur le fait qu'ici, les statistiques ne sont pas pour une machine virtuelle spécifique (ou un disque de machine virtuelle), mais générales pour l'ensemble du magasin de données. À mon avis, il est plus pratique de regarder ces statistiques dans ESXTOP, au moins sur la base que la période de mesure minimale est de 2 secondes.

La section Disque contient des métriques pour les périphériques de bloc utilisés par la machine virtuelle. Il existe des compteurs IOPS de type sommation (le nombre d'opérations d'E / S par période de mesure) et plusieurs compteurs liés à l'accès au bloc (commandes abandonnées, réinitialisations de bus). À mon avis, ces informations sont également plus pratiques à regarder dans ESXTOP.

La section Disque virtuel est la plus utile pour résoudre les problèmes de performances des sous-systèmes de disques VM. Ici, vous pouvez voir les performances de chaque disque virtuel. Ces informations 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'entrée / sortie, le volume de lecture / écriture et les retards, cette section contient des compteurs utiles qui indiquent la taille du bloc: Taille de la demande de lecture / écriture.

Dans l'image ci-dessous, un graphique des performances du disque VM, où vous pouvez voir le nombre d'E / S par seconde, la latence et la taille des blocs.



Les métriques de performances peuvent également être affichées sur l'ensemble du magasin de données si SIOC est activé. Voici quelques 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.



ESXTOP


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

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



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

La signification des paramètres restants sur cet écran est claire d'après leurs noms.

Un autre écran utile pour le dépannage est l'adaptateur de disque. Il est appelé par la touche "d" (dans l'image ci-dessous, les champs A, B, C, D, E, G sont sélectionnés):



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



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

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

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



DQLEN - taille de file d'attente pour un périphérique de bloc.
ACTV est le nombre de commandes d'E / S dans le cœur ESXi.
QUED - le nombre de commandes d'E / S dans la file d'attente.
% USD - ACTV / DQLEN × 100%.
CHARGER - (ACTV + QUED) / DQLEN.

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

Vous pouvez également voir sur l'écran Périphérique de disque si VAAI (API vStorage pour l'intégration de baies) s'exécute sur le stockage. Pour ce faire, 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 mise à zéro, la copie de blocs ou le blocage.



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

Conseils d'optimisation de disque 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 votre PSP selon les recommandations du fabricant.
  • Assurez-vous que VAAI fonctionne.

Source: https://habr.com/ru/post/fr461127/


All Articles