Ce document présenté dans le framework d'architecture de Google Cloud fournit des recommandations pour vous aider à optimiser les performances de vos ressources Compute Engine, Google Kubernetes Engine (GKE) et sans serveur.
Compute Engine
Cette section fournit des conseils pour vous aider à optimiser les performances de vos ressources Compute Engine.
Ressources d'autoscaling
Les groupes d'instances gérés (MIG) vous permettent de faire évoluer efficacement vos applications sans état déployées sur des VM Compute Engine. L'autoscaling permet à vos applications de maintenir des performances prévisibles lorsque la charge augmente. Dans un MIG, un groupe de VM Compute Engine est lancé en fonction d'un modèle que vous définissez. Dans le modèle, vous configurez une règle d'autoscaling qui spécifie un ou plusieurs signaux que l'autoscaler utilise pour procéder au scaling du groupe. Les signaux d'autoscaling peuvent être basés sur des planifications, telles que l'heure de début ou la durée, ou sur des métriques cibles, telles que l'utilisation moyenne du processeur. Pour en savoir plus, consultez la page Effectuer l'autoscaling des groupes d'instances.
Désactiver le SMT
Chaque processeur virtuel que vous allouez à une VM Compute Engine est mis en œuvre sous la forme d'un multithread matériel unique. Par défaut, deux processeurs virtuels partagent un cœur physique de processeur. Cette architecture est appelée multithreading simultané (SMT).
Pour les charges de travail hautement parallèles ou qui effectuent des calculs à virgule flottante (tels que le transcodage, les simulations de Monte-Carlo, l'analyse de séquences génétiques et la modélisation des risques financiers), vous pouvez améliorer les performances en désactivant le SMT. Pour en savoir plus, consultez la section Définir le nombre de threads par cœur.
Utiliser les GPU
Pour les charges de travail telles que le machine learning et la visualisation, vous pouvez ajouter des processeurs graphiques (GPU) à vos VM. Compute Engine fournit des GPU NVIDIA en mode passthrough, pour permettre à vos VM de contrôler directement les GPU et la mémoire associée. Pour les charges de travail avec traitement graphique intensif telles que la visualisation 3D, vous pouvez utiliser les postes de travail virtuels NVIDIA RTX. Après avoir déployé les charges de travail, surveillez l'utilisation du GPU et examinez les options permettant d'optimiser les performances des GPU.
Utiliser des types de machines optimisés pour le calcul
Les charges de travail telles que les jeux, le transcodage multimédia et le calcul hautes performances (HPC) nécessitent des performances élevées, cohérentes et régulières sur chaque cœur de processeur. Nous vous recommandons d'utiliser des types de machines optimisés pour le calcul pour les VM qui exécutent de telles charges de travail. Les VM optimisées pour le calcul sont basées sur une architecture qui utilise des fonctionnalités telles que l'accès non uniforme à la mémoire (NUMA) pour des performances optimales et fiables.
Les charges de travail HPC à couplage fort présentent un ensemble unique d'exigences pour optimiser l'efficacité et les performances. Pour en savoir plus, consultez la documentation suivante :
- Systèmes de fichiers parallèles pour les charges de travail HPC
- Architecture : système de fichiers Lustre dans Google Cloud avec DDN EXAScaler
Choisir le stockage approprié
Google Cloud propose de nombreuses options de stockage pour les VM Compute Engine : disques persistants, disques durs SSD locaux, Filestore et Cloud Storage. Pour obtenir des recommandations de conception et des bonnes pratiques afin d'optimiser les performances de chacune de ces options de stockage, consultez la page Optimiser les performances des espaces de stockage.
Google Kubernetes Engine
Cette section fournit des conseils pour vous aider à optimiser les performances de vos ressources Google Kubernetes Engine (GKE).
Ressources d'autoscaling
Vous pouvez redimensionner automatiquement les pools de nœuds d'un cluster GKE en fonction de la charge actuelle à l'aide de la fonctionnalité d'autoscaler de cluster. L'autoscaling permet à vos applications de continuer à fournir des performances prévisibles lorsque la charge augmente. L'autoscaler de cluster redimensionne automatiquement les pools de nœuds en fonction des demandes en ressources (et non de l'utilisation réelle des ressources) des pods exécutés sur les nœuds. L'utilisation de l'autoscaling peut présenter un compromis entre performances et coût. Passez en revue les bonnes pratiques pour configurer efficacement l'autoscaling des clusters.
Utiliser des VM C2D
Vous pouvez améliorer les performances des charges de travail conteneurisées qui nécessitent beaucoup de ressources de calcul en utilisant les types de machines C2D. Vous pouvez ajouter des nœuds C2D à vos clusters GKE en choisissant un type de machine C2D dans vos pools de nœuds.
Désactiver le SMT
Le multithreading simultané (SMT) peut augmenter considérablement le débit des applications pour les tâches de calcul générales et pour les charges de travail nécessitant des E/S élevées. Toutefois, pour les charges de travail dans lesquelles les deux cœurs virtuels sont liés au calcul, le SMT peut provoquer des performances inégales. Pour obtenir des performances supérieures et plus prévisibles, vous pouvez désactiver le SMT pour vos nœuds GKE en définissant le nombre de processeurs virtuels par cœur sur 1.
Utiliser les GPU
Pour les charges de travail nécessitant beaucoup de ressources de calcul, telles que la reconnaissance d'images et le transcodage vidéo, vous pouvez accélérer les performances en créant des pools de nœuds qui utilisent des GPU. Pour en savoir plus, consultez la page Exécuter des GPU.
Utiliser l'équilibrage de charge natif en conteneurs
L'équilibrage de charge natif en conteneurs permet aux équilibreurs de charge de répartir le trafic directement et de manière uniforme entre les pods. Cette approche offre de meilleures performances réseau et une visibilité accrue sur la latence réseau entre l'équilibreur de charge et les pods. Compte tenu de ces avantages, l'équilibrage de charge natif en conteneurs est la solution recommandée pour l'équilibrage de charge via Ingress.
Définir une stratégie d'emplacement compact
Les charges de travail par lot à couplage fort nécessitent une latence réseau faible entre les nœuds du pool GKE. Vous pouvez déployer ces charges de travail sur des pools de nœuds à zone unique et vous assurer que les nœuds sont physiquement proches les uns des autres en définissant une stratégie d'emplacement compact. Pour en savoir plus, consultez la section Définir un emplacement compact pour les nœuds GKE.
Services de calcul sans serveur
Cette section fournit des conseils pour vous aider à optimiser les performances de vos services de calcul sans serveur dans Google Cloud : Cloud Run et Cloud Functions. Ces services offrent des fonctionnalités d'autoscaling, où l'infrastructure sous-jacente gère automatiquement le scaling. En utilisant ces services sans serveur, vous pouvez réduire les efforts nécessaires pour faire évoluer vos microservices et vos fonctions afin de vous concentrer sur l'optimisation des performances au niveau de l'application.
Pour en savoir plus, consultez la documentation suivante :
- Optimiser les performances des services Cloud Run
- Optimiser les applications Java pour Cloud Run
- Optimiser les performances dans Cloud Functions
Étapes suivantes
Passez en revue les bonnes pratiques pour optimiser les performances de vos ressources de stockage, de mise en réseau, de base de données et d'analyse :
- Optimiser les performances de stockage.
- Optimiser les performances du réseau.
- Optimiser les performances de la base de données.
- Optimiser les performances des analyses.