Personnaliser le nombre de cœurs de processeur visibles

Avec la personnalisation du nombre de cœurs de CPU visibles, vous pouvez contrôler précisément les coûts de licence tout en maintenant les performances de la mise en réseau et des disques persistants. Cette personnalisation réduit le nombre de vCPU (processeurs virtuels) disponibles sur l'instance de machine virtuelle (VM). Elle ne modifie pas le type de machine ni le prix.

Compute Engine implémente chaque vCPU en tant que multithread matériel unique, qui s'exécute sur un cœur de CPU physique. Pour réduire le nombre de vCPU disponibles sur une VM, Compute Engine vous offre la possibilité de personnaliser le nombre de cœurs de CPU visibles.

Les cœurs visibles sont les cœurs de CPU du matériel sous-jacent que vos VM utilisent. Par défaut, le nombre de cœurs de CPU visibles sur une VM correspond au nombre de vCPU présents sur le type de machine divisé par le nombre de threads par cœur :

  • Cœurs de CPU visibles = vCPU sur le type de machine / nombre de threads par cœur

Par exemple, le type de machine c2-standard-60 spécifie 60 vCPU. En supposant que la valeur par défaut est de deux threads par cœur, le nombre de cœurs de CPU visibles est de 30. Si vous réduisez le nombre de cœurs visibles de 30 à 20, le nombre de vCPU fonctionnels passe de 60 à 40.

Songez à personnaliser le nombre de cœurs de CPU visibles si les deux conditions suivantes s'appliquent :

Avant de personnaliser le nombre de vCPU disponibles sur une VM, envisagez d'abord l'utilisation d'un type de machine personnalisé.

Rôles requis

Pour obtenir les autorisations nécessaires vous permettant de personnaliser le nombre de cœurs de CPU visibles, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour personnaliser le nombre de cœurs de CPU visibles. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour personnaliser le nombre de cœurs de CPU visibles :

  • Pour personnaliser le nombre de cœurs de CPU visibles lors de la création de la VM :
    • compute.instances.create sur le projet.
    • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
    • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
    • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
    • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
    • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
    • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
    • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
    • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
    • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
    • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
    • Pour définir des étiquettes pour la VM : compute.instances.setLabels sur la VM
    • Pour définir un compte de service que doit utiliser la VM : compute.instances.setServiceAccount sur la VM
    • Pour créer un disque pour la VM : compute.disks.create sur le projet
    • Pour associer un disque existant en mode lecture seule ou en mode lecture/écriture : compute.disks.use sur le disque
    • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque
  • Pour personnaliser le nombre de cœurs de CPU visibles sur un groupe de VM à l'aide d'un modèle d'instance : vous devez disposer de toutes les autorisations requises pour la création d'une VM, ainsi que de l'autorisation compute.instanceTemplates.create sur le projet

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

vPCU et nombre de threads par cœur

Le nombre total de vCPU sur un type de machine correspond au nombre de cœurs de CPU visibles multiplié par le nombre de threads par cœur. Pour la plupart des séries de machines, le nombre de threads par cœur est de 2, mais vous pouvez définir manuellement le nombre de threads par cœur sur 1.

Le tableau suivant montre le lien entre les cœurs de CPU visibles, le nombre de threads par cœur et le nombre total de vCPU disponibles, en utilisant le type de machine c2-standard-60 à titre d'exemple.

Type de machine Cœurs de CPU visibles Threads par cœur vCPU disponibles
c2-standard-60 30 (par défaut) 2 (par défaut) 60
c2-standard-60 30 (par défaut) 1 30
c2-standard-60 20 2 (par défaut) 40
c2-standard-60 20 1 20

Considérations sur les performances

Cette section explique l'impact que peut avoir la réduction du nombre de cœurs visibles sur les performances de votre VM.

Disque persistant

Les limites de performance des disques persistants dépendent du type de machine et ne sont pas affectées par le nombre de cœurs de CPU visibles. Pour en savoir plus, consultez Performances des options de stockage de blocs.

Sortie réseau

Les limites de bande passante de sortie réseau correspondent au type de machine utilisé et ne sont pas affectées par le nombre de cœurs de CPU visibles. Cependant, les performances réseau varient en fonction du nombre de vCPU accessibles par la VM. Par exemple, un type de machine n2-standard-16 doté d'un cœur de CPU visible risque de ne pas pouvoir utiliser pleinement une connexion 32 Gbit/s.

Tarification

Cette section explique l'impact que peut avoir la réduction du nombre de cœurs visibles sur le coût de vos VM.

Coûts de licence du système d'exploitation

Vous pouvez réduire les coûts de licence pour certains systèmes d'exploitation en réduisant le nombre de cœurs de CPU visibles. Les systèmes d'exploitation applicables sont ceux qui vous facturent chaque vCPU disponible pour la VM, par exemple Windows Server et SQL Server. Pour plus d'informations sur les options de licences pour ces systèmes d'exploitation sur Compute Engine, consultez Licences Microsoft.

Coûts, quotas et capacité des VM

Lorsque vous personnalisez le nombre de cœurs de CPU visibles, les coûts, les quotas et la capacité des VM restent les mêmes. En effet, avec Compute Engine, la facturation, le suivi des quotas et l'allocation d'espace sur les types de machines s'effectue comme si les VM utilisaient le nombre de cœurs de CPU du type de machine. Pour en savoir plus sur la facturation Compute Engine pour les VM, consultez la page Tarifs des instances de VM.

Limites

  • Vous ne pouvez pas personnaliser le nombre de cœurs de CPU visibles lorsqu'une VM est à l'état RUNNING. Pour en savoir plus sur les états des VM, consultez Cycle de vie des instances de VM.

  • Dans la console Google Cloud , lorsque le nombre de cœurs visibles est réduit, la métrique d'utilisation du CPU ne peut pas atteindre 100 %. Elle est limitée au nombre de cœurs de CPU visibles divisé par le nombre maximal de cœurs de CPU.

  • Vous ne pouvez pas vous servir de cette fonctionnalité pour personnaliser le nombre de cœurs de CPU visibles pour les instances Bare Metal.

Types de machines pris en charge et valeurs valides pour chacun

De nombreux types de machines prennent en charge la personnalisation du nombre de cœurs de CPU visibles. La valeur du nombre de cœurs de CPU visibles doit être un nombre entier. La valeur maximale correspond au nombre de vCPU (ou de GPU pour les types de machines optimisées pour les accélérateurs) sur le type de machine divisé par le nombre de threads par cœur de la VM.

Le tableau suivant indique les types de machines qui prennent en charge cette personnalisation, ainsi que les valeurs valides correspondantes pour les cœurs de CPU visibles sur les types de machines appartenant à ces familles.

Famille de types de machines Nombre prédéfini de vCPU* Valeurs valides pour les cœurs de CPU visibles
Usage général
C4D ≤ 192 Tous
C4D > 192 Multiples de 2
C4 4, 8, 16, 24, 32 ou 48 Tous
C4 96 Multiples de 2
C4 144 Multiples de 3
C4 192 Multiples de 4
C4 288 Multiples de 6
C3D ≤ 180 Tous
C3D 360 Multiples de 2
C3 4, 8, 22 ou 44 Multiples de 1
C3 88 Multiples de 2
C3 176 Multiples de 4
E2 ≤ 32 Tous
N2 ≤ 32 Tous
N2 > 32 Multiples de 2
N2D ≤ 24 Tous
N2D > 24 Multiples de 2
N4 ≤ 80 Tous
N1 ≤ 64 Tous
N1 > 64 Multiples de 2
N1 (optimisées pour les TPU) 48 Tous
N1 (optimisées pour les TPU) 96 Multiples de 2
Optimisées pour le stockage
Z3 ≤ 44 Tous
Z3 88 Multiples de 2
Z3 176 Multiples de 4
Optimisées pour le calcul
H4D (preview) 192 Multiples de 4
H3 88 Multiples de 4
C2 4, 8, 16 ou 30 Tous
C2 60 Multiples de 2
À mémoire optimisée
M4 16, 28, 32 ou 56 Tous
M4 64 ou 112 Multiples de 2
M4 224 Multiples de 4
M3 128 Multiples de 2
M3 32 ou 64 Tous
M2 208 Multiples de 4
M2 416 Multiples de 8
M1 40 Tous
M1 80 ou 96 Multiples de 2
M1 160 Multiples de 4
Optimisées pour les accélérateurs
A4 224 Multiples de 2
A3 26, 52, 104, 208 ou 224 Multiples de 2
A2 ≤ 48 Tous
A2 96 Multiples de 2
G2 ≤ 48 Tous
G2 96 Multiples de 2
G4 Tous les types de machines Multiples de 2
* Dans la plupart des cas, le nombre de vCPU est inclus dans le nom du type de machine. Toutefois, dans le cas des types de machines optimisées pour les accélérateurs autres que G2 et G4, le nom du type de machine contient le nombre prédéfini de GPU. Pour connaître le nombre de vCPU pour les types de machines optimisées pour les accélérateurs, consultez la documentation de la famille de machines optimisées pour les accélérateurs.

Personnaliser le nombre de cœurs de CPU visibles lors de la création de la VM

Pour personnaliser le nombre de cœurs de CPU visibles lors de la création d'une seule VM, suivez les étapes décrites dans cette section.

L'exemple suivant montre comment créer une VM SQL Server avec un nombre réduit de cœurs de CPU visibles.

Console

Pour personnaliser le nombre de cœurs de CPU visibles lors de la création d'une VM, procédez comme suit :

  • Dans Configuration de la machine > Configurations avancées > Nombre de cœurs visibles, sélectionnez le nombre de cœurs visibles.

gcloud

Pour créer une VM SQL Server avec un nombre réduit de cœurs de CPU visibles, utilisez la commande gcloud compute instances create suivante :

gcloud compute instances create VM_NAME \
    --image-project=windows-sql-cloud \
    --image-family=sql-ent-2019-win-2019 \
    --machine-type=MACHINE_TYPE \
    --visible-core-count=VISIBLE_CORE_COUNT \
    --zone=ZONE

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM.

  • MACHINE_TYPE : type de machine pris en charge (par exemple, c2-standard-60).

  • VISIBLE_CORE_COUNT : nombre de cœurs de CPU visibles. Par exemple, si vous utilisez le type de machine c2-standard-60 avec la valeur définie sur 20 et que le nombre de threads par cœur est de 2, 40 CPU sur 60 sont visibles.

  • ZONE : zone dans laquelle créer la VM.

REST

Pour créer une VM SQL Server avec un nombre réduit de cœurs de CPU visibles, utilisez la méthode instances.insert suivante :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  ...
  "advanced_machine_features": {
    ...
    "visibleCoreCount": "VISIBLE_CORE_COUNT"
  },
  ...
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet.

  • ZONE : zone dans laquelle créer l'instance de VM.

  • VM_NAME : nom de la VM.

  • VISIBLE_CORE_COUNT : nombre de cœurs de CPU visibles. Par exemple, si vous utilisez le type de machine c2-standard-60 avec la valeur définie sur 20 et que le nombre de threads par cœur est de 2, 40 CPU sur 60 sont visibles.

Personnaliser le nombre de cœurs de processeur visibles sur un groupe de VM à l'aide d'un modèle d'instance

Pour personnaliser le nombre de cœurs de CPU visibles lors de la création d'une VM à l'aide d'un modèle d'instance, suivez les étapes décrites dans cette section.

L'exemple suivant montre comment créer un groupe de VM SQL Server identiques avec un nombre réduit de cœurs de CPU visibles, à l'aide d'un modèle d'instance.

Console

Pour personnaliser le nombre de cœurs de CPU visibles lors de la création d'un modèle d'instance, procédez comme suit :

  • Dans Configuration de la machine > Configurations avancées > Nombre de cœurs visibles, sélectionnez le nombre de cœurs visibles.

gcloud

  1. Créez un modèle d'instance pour les VM SQL Server, chacune ayant un nombre réduit de cœurs de CPU visibles, à l'aide de la commande gcloud compute instance-templates create suivante :

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
       --image-project=windows-sql-cloud \
       --image-family=sql-ent-2019-win-2019 \
       --machine-type=MACHINE_TYPE \
       --visible-core-count=VISIBLE_CORE_COUNT \
       --zone=ZONE
    

    Remplacez les éléments suivants :

    • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

    • MACHINE_TYPE : type de machine pris en charge (par exemple, c2-standard-60).

    • VISIBLE_CORE_COUNT : nombre de cœurs de CPU visibles. Par exemple, si vous utilisez le type de machine c2-standard-60 avec la valeur définie sur 20 et que le nombre de threads par cœur est de 2, 40 CPU sur 60 sont visibles.

    • ZONE : zone dans laquelle créer les VM.

  2. Créez les VM SQL Server, chacune ayant un nombre réduit de cœurs de CPU visibles, à l'aide de la commande gcloud compute instances create suivante :

    gcloud compute instances create INSTANCE_NAMES \
       --source-instance-template=INSTANCE_TEMPLATE_NAME
    

    Remplacez les éléments suivants :

    • INSTANCE_NAMES : noms des VM à créer à partir du modèle d'instance, séparés par des espaces

    • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance à partir duquel créer les VM

REST

  1. Créez un modèle d'instance pour les VM SQL Server, chacune ayant un nombre réduit de cœurs de CPU visibles, à l'aide de la méthodeinstanceTemplates.insert suivante :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
    
    {
     "name": "INSTANCE_TEMPLATE_NAME",
     ...
     "advanced_machine_features": {
       ...
       "visible_core_count": "VISIBLE_CORE_COUNT"
     },
     ...
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet.

    • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

    • VISIBLE_CORE_COUNT : nombre de cœurs de CPU visibles. Par exemple, si vous utilisez le type de machine c2-standard-60 avec la valeur définie sur 20 et que le nombre de threads par cœur est de 2, 40 CPU sur 60 sont visibles.

  2. Créez les VM SQL Server, chacune ayant un nombre réduit de cœurs de CPU visibles, à l'aide de la méthode instances.insert suivante :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_NAME
    
    {
     "name": "VM_NAME",
     ...
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet

    • ZONE : zone dans laquelle créer la VM

    • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance à partir duquel créer les VM

    • VM_NAME : nom de la VM à créer à partir du modèle d'instance

Personnaliser le nombre de cœurs de CPU visibles

Pour personnaliser le nombre de cœurs de CPU visibles sur une VM existante, suivez les étapes décrites dans cette section.

Si vous avez personnalisé le nombre de cœurs de CPU visibles sur un groupe de VM à l'aide d'un modèle d'instance, vous devez créer un nouveau modèle d'instance, puis créer des VM à partir de ce modèle d'instance. Pour plus d'informations sur les modèles d'instances, consultez la page Modèles d'instances.

Console

Pour personnaliser le nombre de cœurs de CPU visibles sur une VM existante, procédez comme suit :

  1. Arrêtez la VM.

  2. Dans Configuration de la machine > Configurations avancées > Nombre de cœurs visibles, sélectionnez le nombre de cœurs visibles.

  3. Redémarrez la VM.

gcloud

Pour mettre à jour la valeur du nombre de cœurs de CPU visibles sur une VM existante, suivez les étapes ci-dessous. Pour en savoir plus, consultez Mettre à jour les propriétés d'une instance.

  1. Exportez les propriétés de la VM existante vers un fichier à l'aide de la commande gcloud compute instances export.

  2. Dans le fichier contenant les propriétés exportées, modifiez ou ajoutez la valeur des éléments suivants :

    advancedMachineFeatures:
     visibleCoreCount: VISIBLE_CORE_COUNT
    
  3. Mettez à jour les propriétés de la VM à l'aide de la commande gcloud compute instances update-from-file avec --most-disruptive-allowed-action=RESTART.

REST

Pour mettre à jour le nombre de cœurs de CPU visibles de la VM, utilisez la méthode instances.update suivante :

PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART

{
  ...
  "advanced_machine_features": {
    ...
    "visible_core_count": "VISIBLE_CORE_COUNT"
  },
  ...
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet

  • ZONE : zone contenant la VM

  • VM_NAME : nom de la VM à partir de laquelle exporter les propriétés

  • VISIBLE_CORE_COUNT : nombre de cœurs de CPU visibles

Étapes suivantes