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 :
Vous exécutez des logiciels tels que Windows Server ou SQL Server dont les licenses sont basées sur le nombre de vCPU disponibles.
Vous utilisez des types de machines prédéfinis qui ne vous permettent pas de modifier le nombre de vCPU ou la quantité de RAM.
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.createsur le projet.- Pour créer la VM à l'aide d'une image personnalisée :
compute.images.useReadOnlysur l'image - Pour créer la VM à l'aide d'un instantané :
compute.snapshots.useReadOnlysur l'instantané - Pour créer la VM à l'aide d'un modèle d'instance :
compute.instanceTemplates.useReadOnlysur le modèle d'instance - Pour attribuer un ancien réseau à la VM :
compute.networks.usesur le projet - Pour spécifier une adresse IP statique pour la VM :
compute.addresses.usesur le projet - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau :
compute.networks.useExternalIpsur le projet - Pour spécifier un sous-réseau pour la VM :
compute.subnetworks.usesur 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.useExternalIpsur 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.setMetadatasur le projet - Pour définir des tags pour la VM :
compute.instances.setTagssur la VM - Pour définir des étiquettes pour la VM :
compute.instances.setLabelssur la VM - Pour définir un compte de service que doit utiliser la VM :
compute.instances.setServiceAccountsur la VM - Pour créer un disque pour la VM :
compute.disks.createsur le projet - Pour associer un disque existant en mode lecture seule ou en mode lecture/écriture :
compute.disks.usesur le disque - Pour associer un disque existant en mode lecture seule :
compute.disks.useReadOnlysur 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.createsur 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 |
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 machinec2-standard-60avec la valeur définie sur20et que le nombre de threads par cœur est de2, 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 machinec2-standard-60avec la valeur définie sur20et que le nombre de threads par cœur est de2, 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
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 createsuivante :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 machinec2-standard-60avec la valeur définie sur20et que le nombre de threads par cœur est de2, 40 CPU sur 60 sont visibles.ZONE: zone dans laquelle créer les VM.
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 createsuivante :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 espacesINSTANCE_TEMPLATE_NAME: nom du modèle d'instance à partir duquel créer les VM
REST
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éthode
instanceTemplates.insertsuivante :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 machinec2-standard-60avec la valeur définie sur20et que le nombre de threads par cœur est de2, 40 CPU sur 60 sont visibles.
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.insertsuivante :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 projetZONE: zone dans laquelle créer la VMINSTANCE_TEMPLATE_NAME: nom du modèle d'instance à partir duquel créer les VMVM_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 :
Arrêtez la VM.
Dans Configuration de la machine > Configurations avancées > Nombre de cœurs visibles, sélectionnez le nombre de cœurs visibles.
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.
Exportez les propriétés de la VM existante vers un fichier à l'aide de la commande
gcloud compute instances export.Dans le fichier contenant les propriétés exportées, modifiez ou ajoutez la valeur des éléments suivants :
advancedMachineFeatures: visibleCoreCount: VISIBLE_CORE_COUNT
Mettez à jour les propriétés de la VM à l'aide de la commande
gcloud compute instances update-from-fileavec--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 projetZONE: zone contenant la VMVM_NAME: nom de la VM à partir de laquelle exporter les propriétésVISIBLE_CORE_COUNT: nombre de cœurs de CPU visibles
Étapes suivantes
Découvrez comment consulter le nombre de cœurs de CPU visibles.
Découvrez les options de licence pour les logiciels Microsoft.
Découvrez comment définir le nombre de threads par cœur.
Découvrez les systèmes d'exploitation que vous pouvez exécuter sur des VM Compute Engine.