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 les instances 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 Google Cloud Console, accédez à la page Instances de VM.
Vous pouvez afficher des métriques pour des instances individuelles ou pour les cinq instances qui consomment le plus de ressources.
Pour afficher les métriques d'instances individuelles, procédez comme suit :
Cliquez sur le nom de l'instance pour laquelle vous souhaitez afficher les métriques de performances. La page 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 chaque sujet. Voici les métriques clés qui indiquent les performances de l'instance :
Sur la page Aperçu :
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 noyau.
Trafic réseau Taux moyen d'octets envoyés et reçus par intervalles d'une minute.
Nouvelles connexions avec des VM/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/destinations externes/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 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 élevée. Les volumes Persistent Disk et Google Cloud Hyperdisk sont des espaces de stockage en réseau. Ils disposent généralement d'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 des opérations d'E/S.
Comprendre les métriques de performances
Les performances de l'instance sont affectées par le matériel sur lequel elle s'exécute, la charge de travail exécutée sur l'instance et le type de machine de l'instance. Si le matériel n'est pas compatible avec la charge de travail ou le trafic réseau de votre instance, ses performances peuvent être affectées.
Performances des processeurs et de la mémoire
Informations sur le matériel
Les performances des processeurs et de mémoire sont affectées par les contraintes matérielles suivantes :
- Chaque processeur virtuel est mis en œuvre sous la forme d'une technologie multithread matérielle unique appliquée sur un processeur.
- Les processeurs Intel Xeon sont compatibles avec plusieurs threads d'application sur un seul cœur de processeur.
- Les VM qui utilisent des types de machines C2 disposent d'un mappage de cœur virtuel vers 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 répertorié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 processeurs virtuels pour un fonctionnement multitâche. Ils offrent également des capacités d'utilisation intensive pendant lesquelles l'utilisation du processeur pour une VM peut dépasser 100 %. Pour en savoir plus, consultez la section 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 de ressources les plus coûteuses de votre instance.
Une utilisation élevée et constante 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 processeurs virtuels ou de mémoire.
Une utilisation inhabituellement élevée ou faible du processeur peut indiquer que votre VM subit un blocage logiciel du processeur. Pour en savoir plus, consultez la section Dépannage des blocages logiciels des processeurs virtuels.
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 :
- L'ajout d'interfaces réseau supplémentaires ou d'adresses IP supplémentaires par interface réseau à une VM 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 la section 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/sources externes/Google, Envoyé aux VM/destinations externes/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/sources externes/Google sont habituels pour votre charge de travail. Par exemple, un serveur Web peut devoir gérer de nombreuses connexions et de petits paquets, tandis qu'une base de données peut devoir gérer peu de connexions et de grands paquets.
Si le trafic réseau sortant est constant et élevé, cela peut indiquer qu'il est nécessaire de modifier le type de machine de la VM pour obtenir un type de machine disposant d'une limite de bande passante de sortie plus élevée.
Si vous remarquez un nombre élevé de paquets entrants refusés par le pare-feu, consultez la page Firewall Insights Network Intelligence dans la console Google 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, essayez d'exécuter des tests de connectivité.
Si votre instance envoie et reçoit un volume élevé de trafic provenant d'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 afin 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 du réseau.
Instances Bare Metal
Contrairement aux instances de VM, dans une instance Bare Metal, les états de veille C6 et C1E ne sont pas désactivés. Cela peut entraîner l'état de veille des cœurs inactifs 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é des performances de la bande passante.
Vous pouvez utiliser le script suivant pour désactiver les états de veille sur une instance Bare Metal C3 sans avoir à redémarrer l'instance :
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 done
Vous pouvez également mettre à jour le fichier de configuration GRUB pour que les modifications soient conservées lors des redémarrages 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 appareils PCI. IOMMU peut avoir un impact négatif sur les performances réseau en cas d'échecs nombreux de I/O translation lookaside
buffer
(IOTLB).
- Vous avez plus de risques d'échouer 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 associé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 la page Performances des options de stockage de blocs.
- Lorsque Persistent Disk et Hyperdisk sont en concurrence avec le trafic de transfert de données sortantes, 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 sortantes du réseau. Pour en savoir plus, consultez la section 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 utiliser toutes les limites de performances de la taille des opérations 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 la section Type de machine et nombre de processeurs virtuels.
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 est inférieur 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.
Les tailles d'E/S peuvent être 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 tailles d'écriture séquentielles ou de grande taille. La taille d'E/S située en dehors de ces plages indique les problèmes de performances des disques.
La longueur de la file d'attente, également appelée profondeur de file d'attente, est un facteur du débit et des 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, répertoriée dans le tableau Profondeur recommandée de la file d'attente d'E/S.
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.
- Associez un nouveau disque persistant à la VM ou ajoutez un stockage Hyperdisk à une VM pour augmenter les limites de performances des disques. Les performances du disque sont basées sur la quantité totale d'espace 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 ou à 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 ne disposent pas d'une capacité réservée et 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.