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 section Gérer les accès.
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
.
Machine type | 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.
Tarification
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 | ||
C3D | ≤ 180 | Tous |
C3D | 360 | Multiples de 2 |
C3 | 4, 8, 22, 44 | Multiples de 1 |
C3 | 88 | Multiples de 2 |
C3 | 176 | Multiples de 4 |
E2 | ≤ 32 | Tout |
N2 | ≤ 32 | Tout |
N2 | > 32 | Multiples de 2 |
N2D | ≤ 24 | Tout |
N2D | > 24 | Multiples de 2 |
N4 | ≤ 80 | Tous |
N1 | ≤ 64 | Tout |
N1 | > 64 | Multiples de 2 |
N1 (optimisé pour TPU) | 48 | Tous |
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 | Tous |
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 | Tous |
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 |
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 machinec2-standard-60
avec la valeur définie sur20
et que le nombre de threads par cœur est de2
, 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 projetZONE
: 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 machinec2-standard-60
avec la valeur définie sur20
et que le nombre de threads par cœur est de2
, 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
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 machinec2-standard-60
avec la valeur définie sur20
et que le nombre de threads par cœur est de2
, 40 processeurs sur 60 sont visibles.ZONE
: zone dans laquelle créer les VM.
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'instanceINSTANCE_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 avec un nombre réduit de cœurs de processeur visibles, à l'aide de la méthode
instanceTemplates.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 projetINSTANCE_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 machinec2-standard-60
avec la valeur définie sur20
et que le nombre de threads par cœur est de2
, 40 processeurs sur 60 sont visibles.
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 projetZONE
: zone dans laquelle créer la VMINSTANCE_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 :
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 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.
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-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 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 processeur visibles
Étape suivante
Découvrez comment afficher le nombre de cœurs de processeur visibles.
Découvrez les options d'attribution de licences 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.