Ce document explique comment diagnostiquer et limiter les problèmes de performances de processeur, de mémoire et de stockage sur les instances de machines virtuelles (VM) et Bare Metal Compute Engine.
Avant de commencer
- Installez l'agent Ops pour afficher toutes les métriques de performances de l'instance, telles que l'utilisation de la mémoire et de l'espace disque.
Afficher les métriques de performances
Pour afficher les métriques de performances de vos instances de calcul, utilisez les métriques d'observabilité de Cloud Monitoring disponibles dans la console Google Cloud .
Dans la console Google Cloud , accédez à la page Instances de VM.
Vous pouvez afficher des métriques pour des instances individuelles ou pour les cinq instances consommant le plus de ressources.
Pour afficher les métriques d'instances individuelles, procédez comme suit :
Cliquez sur le nom de l'instance dont vous souhaitez afficher les métriques de performances. La page des détails de l'instance s'affiche.
Cliquez sur l'onglet Observabilité pour ouvrir la page Aperçu de l'observabilité.
Pour afficher les métriques des cinq instances consommant le plus de ressources, cliquez sur l'onglet Observabilité de la page Instances de VM.
Explorez les métriques de performances de l'instance. Consultez les sections Présentation, Processeur, Mémoire, Réseau et Disque pour afficher des métriques détaillées sur chacun de ces thèmes. Voici les métriques clés qui indiquent les performances de l'instance :
Sur la page Présentation :
Utilisation du processeur : pourcentage de processeur utilisé par l'instance.
Utilisation de la mémoire : pourcentage de mémoire utilisé par l'instance, à l'exclusion des caches de disque. Pour les instances qui utilisent un OS Linux, cela exclut également la mémoire du kernel.
Trafic réseau : taux moyen d'octets envoyés et reçus par intervalles d'une minute.
Nouvelles connexions avec des VM/des sources externes/Google : nombre estimé de flux TCP/UDP distincts en une minute, regroupés par type de pair.
Débit du disque : taux moyen d'octets écrits et lus sur les disques.
IOPS du disque : taux moyen d'opérations d'E/S en lecture et en écriture sur les disques.
Sur la page Récapitulatif du réseau :
Envoyé aux VM/externe/Google : taux de trafic réseau envoyé aux services Google, aux instances et à des destinations externes, basé sur un échantillon de paquets. La métrique est mise à l'échelle de sorte que la somme corresponde au trafic réseau total envoyé.
Reçu de VM/sources externes/Google : taux de trafic réseau reçu des services Google, des instances et des sources externes, basé sur un échantillon de paquets. La métrique est mise à l'échelle de sorte que la somme corresponde au trafic réseau total reçu.
Total de paquets réseau : taux total de paquets envoyés et reçus par intervalles d'une minute.
Taille moyenne des paquets : taille moyenne des paquets, en octets, envoyés et reçus par intervalles d'une minute.
Paquets entrants refusés par le pare-feu : taux de paquets réseau entrants envoyés à l'instance, mais non reçus par celle-ci, car ils ont été refusés par les règles de pare-feu.
Sur la page Performances des disques :
Taille moyenne des opérations d'E/S : taille moyenne des opérations d'E/S en lecture et en écriture sur les disques. Les E/S aléatoires de petite taille (4 à 16 Kio) sont généralement limitées par les IOPS et les E/S séquentielles ou volumineuses (de 256 Kio à 1 Mio) le sont par le débit.
Longueur moyenne de la file d'attente : nombre d'opérations d'E/S de disque en file d'attente et en cours d'exécution (également appelé profondeur de file d'attente) sur les cinq principaux appareils. Pour atteindre les limites de performances de vos disques, définissez une profondeur de file d'attente d'E/S importante. Les volumes Persistent Disk et Google Cloud Hyperdisk sont des espaces de stockage en réseau. Ils présentent généralement une latence plus élevée que les disques physiques ou les disques SSD locaux.
Latence d'E/S moyenne : latence moyenne des opérations d'E/S en lecture et en écriture, agrégée pour l'ensemble des opérations sur tous les disques associés à l'instance, mesurée par l'agent Ops. Cette valeur inclut la latence de traitement du système d'exploitation et du système de fichiers, et dépend de la longueur de la file d'attente et de la taille d'E/S.
Comprendre les métriques de performances
Les performances d'une instance sont affectées par le matériel sur lequel elle s'exécute, la charge de travail qu'elle exécute et son type de machine. Si le matériel n'est pas adapté à la charge de travail ou au trafic réseau de votre instance, les performances de celle-ci peuvent être affectées.
Performances des processeurs et de la mémoire
Informations sur le matériel
Les performances des processeurs et de la mémoire sont affectées par les contraintes matérielles suivantes :
- Chaque processeur virtuel (vCPU) est implémenté sous la forme d'une solution multithread matérielle unique reposant sur un processeur.
- Les processeurs Intel Xeon acceptent plusieurs threads d'application sur un seul cœur de processeur.
- Les VM qui utilisent des types de machines C2 disposent d'un mappage "cœur virtuel vers cœur physique" et exposent l'architecture de cellules NUMA au système d'exploitation invité.
- La plupart des VM obtiennent la fréquence turbo tout cœur listée sur les plates-formes de processeur, même si seule la fréquence de base est présentée dans l'environnement invité.
- Les types de machines à cœur partagé ont recours au changement de contexte pour partager un cœur physique entre plusieurs vCPU pour un fonctionnement multitâche. Ils offrent également des capacités d'utilisation intensive. Dans une telle phase, l'utilisation du processeur pour une VM peut dépasser 100 %. Pour en savoir plus, consultez Types de machines à cœur partagé.
Pour comprendre les performances des processeurs et de la mémoire d'une instance, affichez les métriques de performances concernant l'utilisation du processeur et l'utilisation de la mémoire. En outre, vous pouvez utiliser des métriques de processus pour afficher les processus en cours d'exécution, attribuer à un processus spécifique des anomalies dans la consommation de ressources ou identifier les consommateurs des ressources les plus coûteuses de votre instance.
Une utilisation constamment élevée du processeur ou de la mémoire indique que vous devez effectuer un scaling à la hausse de la taille d'une VM. Si la VM utilise systématiquement plus de 90 % de son processeur ou de sa mémoire, remplacez le type de machine de la VM par un type de machine comportant davantage de vCPU ou de mémoire.
Une utilisation du processeur inhabituellement élevée ou faible peut indiquer que le processeur de votre VM rencontre un blocage logiciel. Pour en savoir plus, consultez Résoudre les problèmes de blocages logiciels des vCPU.
Performances du réseau
Informations sur le matériel
Les performances du réseau sont affectées par les contraintes matérielles suivantes :
- Chaque type de machine est associé à une limite de bande passante de sortie spécifique. Pour trouver la bande passante de sortie maximale pour le type de machine de votre instance, accédez à la page correspondant à la famille de machines de votre instance.
- Le fait d'ajouter à une VM des interfaces réseau ou des adresses IP supplémentaires par interface réseau n'augmente pas la bande passante réseau d'entrée ou de sortie de la VM, mais vous pouvez configurer certains types de machines pour augmenter la bande passante. Pour en savoir plus, consultez Configurer une VM avec une bande passante plus élevée.
Pour comprendre les performances réseau d'une instance, affichez les métriques de performances concernant les éléments suivants : Total de paquets réseau, Taille moyenne des paquets, Nouvelles connexions avec des VM/systèmes externes/Google, Envoyé aux VM/externe/Google, Reçu de VM/sources externes/Google et Paquets entrants refusés par le pare-feu.
Vérifiez si le total des paquets réseau, la taille moyenne des paquets et les nouvelles connexions avec des VM/systèmes externes/Google sont habituels pour votre charge de travail. Par exemple, un serveur Web peut devoir gérer de nombreuses connexions et des paquets de petite taille, tandis qu'une base de données peut devoir gérer peu de connexions et des paquets de plus grande taille.
Si le trafic réseau sortant est constamment élevé, cela peut indiquer qu'il est nécessaire de remplacer le type de machine de la VM par un type de machine disposant d'une limite de bande passante de sortie plus élevée.
Si vous remarquez que de nombreux paquets entrants sont refusés par le pare-feu, consultez la page Firewall Insights de Network Intelligence dans la consoleGoogle Cloud pour en savoir plus sur l'origine des paquets refusés.
Accéder à la page Firewall Insights
Si vous pensez que le pare-feu refuse par erreur votre propre trafic, vous pouvez créer et exécuter des tests de connectivité.
Si votre instance échange un volume élevé de trafic avec des instances situées dans différentes zones ou régions, envisagez de modifier votre charge de travail pour conserver plus de données dans une zone ou une région. Cela a pour effet d'augmenter la latence et de réduire les coûts. Pour en savoir plus, consultez les tarifs de transfert de données de VM à VM dans Google Cloud. Si votre instance envoie une grande quantité de trafic à d'autres instances dans la même zone, envisagez une stratégie d'emplacement compact afin d'atteindre une faible latence réseau.
Instances Bare Metal
Comme le matériel sur site, les instances bare metal Compute Engine ont tous les états de veille du processeur activés par défaut. Cela peut entraîner une entrée des cœurs inactifs dans un état de veille et réduire les performances réseau des instances Bare Metal. Ces états de veille peuvent être désactivés dans le système d'exploitation si vous avez besoin de la totalité de la bande passante.
Pour désactiver les états de veille sur une instance Bare Metal sans avoir à redémarrer l'instance, utilisez le script suivant :
for cpu in {0..191}; do echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state3/disable echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state2/disable doneVous pouvez également mettre à jour le fichier de configuration GRUB pour que les modifications soient conservées en cas de redémarrage de l'instance.
# add intel_idle.max_cstate=1 processor.max_cstate=1 to GRUB_CMDLINE_LINUX sudo vim /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot
Après le redémarrage, vérifiez que les états de veille C6 et C1E sont désactivés :
ls /sys/devices/system/cpu/cpu0/cpuidle/ state0 state1 cat /sys/devices/system/cpu/cpu0/cpuidle/state*/name POLL C1
L'unité de gestion de mémoire d'E/S (IOMMU, Input-Output Memory Management Unit) est une fonctionnalité du processeur qui permet la virtualisation des adresses pour les périphériques PCI. IOMMU peut avoir un impact négatif sur les performances réseau en cas de présence de nombreux échecs de I/O translation lookaside
buffer (IOTLB).
- Les risques d'échec sont plus grands lorsque de petites pages sont utilisées.
- Pour des performances optimales, il est recommandé d'utiliser des pages volumineuses (de 2 Mo à 1 Go).
Performances de stockage
Informations sur le matériel
Le stockage est affecté par les contraintes matérielles suivantes :
- La taille totale de tous les disques persistants combinée au nombre de processeurs virtuels détermine les performances totales de stockage. Si différents types de disques persistants sont associés à une VM, les limites de performances des disques persistants SSD sont partagées par tous les disques de la VM. Pour en savoir plus, consultez Performances des options de stockage de blocs.
- Lorsque Persistent Disk et Hyperdisk sont en concurrence avec le trafic de transfert de données sortant, 60 % de la bande passante réseau sortante maximale sont utilisés pour Persistent Disk et Hyperdisk, et les 40 % restants pour le transfert de données sortant du réseau. Pour en savoir plus, consultez Autres facteurs ayant une incidence sur les performances.
- La taille d'E/S et les performances de profondeur de la file d'attente dépendent des charges de travail. Certaines charges de travail peuvent ne pas être assez volumineuses pour atteindre les limites de performances de taille d'E/S et de la profondeur de file d'attente.
- Le type de machine d'une VM affecte ses performances de stockage. Pour en savoir plus, consultez Performances par type de machine et nombre de vCPU.
Pour comprendre les performances de stockage d'une VM, affichez les métriques de performances pour le débit, les opérations (IOPS), la taille d'E/S, la latence d'E/S et la longueur de la file d'attente.
Le débit du disque et les IOPS indiquent si la charge de travail de VM fonctionne comme prévu. Si le débit ou les IOPS sont inférieurs au maximum attendu indiqué dans le tableau de comparaison des différents types de disques, des problèmes de performances liés à la taille d'E/S, à la longueur de la file d'attente ou aux temps de latence d'E/S peuvent survenir.
Attendez-vous à des tailles d'E/S comprises entre 4 et 16 Kio pour les charges de travail nécessitant un nombre élevé d'IOPS et une faible latence, et entre 256 Kio et 1 Mio pour les charges de travail impliquant des écriture séquentielles ou de grande taille. Une taille d'E/S située en dehors de ces plages indique des problèmes de performances des disques.
La longueur de la file d'attente, également appelée profondeur de file d'attente, est un facteur ayant une incidence sur le débit et les IOPS. Lorsqu'un disque fonctionne correctement, sa longueur de file d'attente doit être à peu près identique à la longueur de file d'attente recommandée pour atteindre un niveau de débit ou d'IOPS particulier. Vous trouverez une liste de valeurs dans le tableau Profondeur de file d'attente d'E/S recommandée.
La latence d'E/S dépend de la longueur de la file d'attente et de la taille d'E/S. Si la longueur de la file d'attente ou la taille d'E/S d'un disque est élevée, la latence sera également élevée.
Si des métriques de performances de stockage indiquent des problèmes de performances des disques, effectuez l'une ou plusieurs des opérations suivantes :
- Consultez la page Optimiser les performances des volumes Persistent Disk ou Optimiser les performances des volumes Hyperdisk et mettez en œuvre les bonnes pratiques suggérées pour améliorer les performances.
- Ajoutez un volume Hyperdisk ou ajoutez un Persistent Disk à votre instance pour augmenter les limites de performances des disques. Les performances de disque sont basées sur la quantité totale de stockage associée à une instance. Cette option est la moins perturbatrice, car elle ne vous oblige pas à désinstaller le système de fichiers, à redémarrer ni à arrêter l'instance.
- Modifiez le volume Hyperdisk pour augmenter les limites d'IOPS et de débit par disque. Pour les volumes Persistent Disk, vous devez augmenter la taille du disque pour augmenter les limites d'IOPS et de débit par disque. Les disques n'ont aucune capacité réservée inutilisable. Vous pouvez donc utiliser le disque complet, sans subir de dégradations de performances.
- Remplacez le type de disque par un type de disque offrant de meilleures performances.