Personnaliser le nombre de cœurs de processeur visibles


La personnalisation du nombre de cœurs de processeur visibles peut offrir un contrôle précis sur 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 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 processeur virtuel en tant que multithread matériel unique, qui s'exécute sur un cœur de processeur physique. Pour réduire le nombre de processeurs virtuels disponibles sur une VM, Compute Engine vous permet de personnaliser le nombre de cœurs de processeur visibles.

Les cœurs visibles sont les cœurs de processeur du matériel sous-jacent utilisés par vos VM. Par défaut, le nombre de cœurs de processeur visibles sur une VM correspond au nombre de processeurs virtuels sur le type de machine divisé par le nombre de threads par cœur :

  • Cœurs de processeur visibles = processeurs virtuels sur le type de machine / nombre de threads par cœur

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

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

  • Vous exécutez des logiciels, tels que Windows Server ou SQL Server, disposant d'une licence en fonction du nombre de processeurs virtuels disponibles.

  • Vous utilisez des types de machines prédéfinis qui ne vous permettent pas de modifier le nombre de processeurs virtuels ou la quantité de RAM.

Avant de personnaliser le nombre de processeurs virtuels disponibles sur une VM, commencez par utiliser un type de machine personnalisé.

Rôles requis

Pour obtenir les autorisations nécessaires pour personnaliser le nombre de cœurs de processeur visibles, demandez à votre administrateur de vous accorder 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 la page 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 processeur 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 processeur visibles :

  • Pour personnaliser le nombre de cœurs de processeur 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 libellés pour la VM : compute.instances.setLabels sur la VM
    • Pour définir un compte de service à utiliser avec 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 processeur visibles sur un groupe de VM, à l'aide d'un modèle d'instance : vous devez disposer de toutes les autorisations associées à la création de 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.

Processeurs virtuels et nombre de threads par cœur

Le nombre total de processeurs virtuels sur un type de machine correspond au nombre de cœurs de processeur 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 deux, mais vous pouvez définir manuellement le nombre de threads par cœur sur un.

À titre d'exemple, le tableau suivant montre comment les cœurs de processeur visibles, le nombre de threads par cœur et le nombre total de processeurs virtuels disponibles sont liés à l'aide du type de machine c2-standard-60.

Type de machine Cœurs de processeur visibles Threads par cœur Processeurs virtuels 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

La réduction du nombre de cœurs visibles peut avoir un impact sur les performances de votre VM.

Disque persistant

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

Sortie réseau

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

Tarifs

La réduction du nombre de cœurs visibles peut avoir un impact 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 processeur visibles. Les systèmes d'exploitation applicables sont ceux pour lesquels chaque processeur virtuel disponible pour la VM, par exemple Windows Server et SQL Server, vous est facturé. Pour plus d'informations sur les options d'attribution de licences pour ces systèmes d'exploitation sur Compute Engine, consultez la page Licences Microsoft.

Coûts, quota et capacité des VM

  • Les coûts, les quotas et la capacité des VM restent identiques lorsque vous personnalisez le nombre de cœurs de processeur visibles, car Compute Engine facture, suit le quota et alloue de l'espace aux types de machines pour les VM comme si elles utilisaient le nombre de cœurs de processeurs du type de machine. Pour en savoir plus sur la facturation de 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 processeur visibles lorsqu'une VM est à l'état RUNNING. Pour en savoir plus sur les états des VM, consultez la section 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 processeur ne peut pas atteindre 100 %. Elle est limitée au nombre de cœurs de processeur visibles divisé par le nombre maximal de cœurs de processeur.

Types de machines compatibles et valeurs valides pour chacun

De nombreux types de machines permettent de personnaliser le nombre de cœurs de processeur visibles. La valeur du nombre de cœurs de processeur visibles doit être un nombre entier. La valeur maximale correspond au nombre de processeurs virtuels (ou de GPU) pour les types de machines optimisés pour les accélérateurs, divisé par le nombre de threads par cœur de la VM.

Le tableau suivant indique les types de machines compatibles avec cette personnalisation, ainsi que les valeurs valides correspondantes pour les cœurs de processeur visibles pour les types de machines de ces familles.

Famille de types de machines Nombre prédéfini de processeurs virtuels* Valeurs valides pour les cœurs de processeur visibles
Usage général
C4 4, 8, 16, 32, 48 Tout
C4 96 Multiples de 2
C4 192 Multiples de 4
C3D ≤ 180 Tout
C3D 360 Multiples de 2
C3 4, 8, 22, 44 Multiples de 1
C3 88 Multiples de 2
C3 176 Multiples de 4
c3-*-metal 192 Non compatible
E2 ≤ 32 Tout
N2 ≤ 32 Tout
N2 > 32 Multiples de 2
N2D ≤ 24 Tout
N2D > 24 Multiples de 2
N4 ≤ 80 Tout
N1 ≤ 64 Tout
N1 > 64 Multiples de 2
N1 (optimisé pour TPU) 48 Tout
N1 (optimisé pour TPU) 96 Multiples de 2
Optimisé pour le stockage
Z3 88 Multiples de 2
Z3 176 Multiples de 4
Optimisé pour le calcul
H3 88 Multiples de 4
C2 4, 8, 16, 30 Tout
C2 60 Multiples de 2
Mémoire optimisée
M3 128 Multiples de 2
M3 32, 64 Tout
M2 208 Multiples de 4
M2 416 Multiples de 8
M1 40 Tout
M1 80, 96 Multiples de 2
M1 160 Multiples de 4
Optimisées pour les accélérateurs
A3 208 Multiples de 2
A2 ≤ 48 Tout
A2 96 Multiples de 2
G2 ≤ 48 Tout
G2 96 Multiples de 2
* Le nom de la plupart des types de machines contient le nombre de processeurs virtuels. Toutefois, pour les types de machines optimisés pour les accélérateurs A3 et A2, le nom du type de machine contient le nombre de GPU prédéfini. Pour connaître le nombre de processeurs virtuels pour les types de machines optimisés pour les accélérateurs A3 et A2, consultez la documentation sur la famille de machines optimisées pour les accélérateurs.

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

Pour personnaliser le nombre de cœurs de processeur visibles lors de la création d'une seule VM, utilisez la console Google Cloud, gcloud CLI gcloud ou l'API Compute Engine.

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

Console

Pour personnaliser le nombre de cœurs de processeur 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 processeur 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 compatible (par exemple, c2-standard-60).

  • VISIBLE_CORE_COUNT : nombre de cœurs de processeur 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 processeurs 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 processeur 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 processeur 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 processeurs 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 processeur visibles lors de la création d'une VM à l'aide d'un modèle d'instance, utilisez la console Google Cloud, gcloud CLI ou l'API Compute Engine.

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

Console

Pour personnaliser le nombre de cœurs de processeur 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 avec un nombre réduit de cœurs de processeur 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 compatible (par exemple, c2-standard-60).

    • VISIBLE_CORE_COUNT : nombre de cœurs de processeur 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 processeurs sur 60 sont visibles.

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

  2. Créez les VM SQL Server, avec un nombre de cœurs de processeur réduit, à 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, séparés par des espaces, à créer à partir du modèle d'instance

    • 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 avec un nombre réduit de cœurs de processeur 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 processeur 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 processeurs sur 60 sont visibles.

  2. Créez les VM SQL Server, chacune avec un nombre réduit de cœurs de processeur 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 processeur visibles

Pour personnaliser le nombre de cœurs de processeur visibles sur une VM existante, utilisez la console Google Cloud, gcloud CLI ou l'API Compute Engine.

Si vous avez personnalisé le nombre de cœurs de processeur 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 processeur 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 processeur visibles sur une VM existante, suivez les étapes ci-dessous. Pour en savoir plus, consultez la section 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 processeur 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 processeur visibles

Étape suivante