O overcommit de CPU em nós de inquilino único permite-lhe agendar instâncias que podem partilhar os respetivos ciclos de CPU adicionais entre si. Isto permite-lhe aprovisionar em excesso recursos de nós de inquilino único e agendar mais CPUs de VMs num nó de inquilino único do que o que está normalmente disponível. A sobreposição de CPUs é especialmente valiosa para cargas de trabalho que são subutilizadas, mas que podem sofrer picos relativamente não correlacionados.
O excesso de compromisso de CPU pode ajudar a reduzir os custos por MV, distribuindo o custo de um nó de inquilino único por mais MVs. Também pode reduzir os custos de licenciamento por VM quando usa licenças por socket ou por núcleo.
As VMs com CPUs em excesso podem usar recursos da CPU que, de outra forma, não seriam usados das seguintes formas:
Se um nó de inquilino único não estiver cheio, as VMs com excesso de compromisso podem usar núcleos não atribuídos.
Se outra VM num nó de inquilino único não estiver a usar todos os respetivos recursos de CPU, por exemplo, porque a CPU está inativa, uma VM com excesso de compromisso pode usar esses recursos de CPU.
Nível de compromisso excessivo
Pode especificar o valor do número mínimo de CPUs que são atribuídas a uma VM quando cria uma VM ou depois de parar uma VM. O nível de compromisso excessivo representa o número mínimo de threads de CPU subjacentes que têm a garantia de estar disponíveis para uma VM. Se a VM tiver mais vCPUs do que threads subjacentes disponíveis, as vCPUs da VM partilham os recursos de computação subjacentes e são executadas com um desempenho reduzido.
Pode definir este valor para cada MV, o que lhe permite aprovisionar MVs com diferentes rácios de sobrecompromisso de CPU num único nó de inquilino exclusivo. Os valores mais baixos reduzem os requisitos de capacidade, potencialmente à custa do desempenho, se ocorrerem picos correlacionados. A determinação de um valor ideal para o número mínimo de CPUs requer a compreensão da utilização da sua carga de trabalho e a modificação iterativa do valor.
Ao definir este valor, tenha em atenção o seguinte:
Se não definir o valor para o número mínimo de CPUs ou definir o valor para o número mínimo de CPUs igual ao número de CPUs no tipo de máquina da VM, a taxa de compromisso excessivo permitida da VM é 1, 0. Com uma taxa de sobrecompromisso de 1, 0, todas as CPUs só são acessíveis a esta VM e não existem recursos de CPU disponíveis para sobrecompromisso com outras VMs.
O número mínimo de CPUs não pode ser superior ao número de CPUs especificado pelo tipo de máquina da VM.
A soma dos valores para o número mínimo de CPUs para todas as VMs num nó de inquilino único não pode exceder a capacidade de CPU desse tipo de nó de inquilino único, que no tipo de nó
n1-node-96-624
é 96.
O valor do número de CPUs especificado pelo tipo de máquina da VM é um valor estático e representa o número de CPUs que uma VM pode aumentar a partir do número mínimo se essas CPUs estiverem disponíveis. Se precisar de um número de CPUs diferente dos fornecidos pelos tipos de máquinas predefinidos, pode usar um tipo de máquina personalizado.
Considerações
Antes de configurar os níveis de compromisso excessivo da CPU para VMs, considere a criticidade da sua carga de trabalho. As cargas de trabalho menos críticas, como as cargas de trabalho de desenvolvimento e teste, podem potencialmente tolerar níveis de compromisso excessivo mais elevados. As cargas de trabalho mais críticas, como um sistema de pagamentos de produção, podem não tolerar tanto overcommit ou nenhum.
Considere também a utilização da sua carga de trabalho. As cargas de trabalho com uma utilização elevada da CPU não são boas candidatas para o excesso de compromisso da CPU porque não têm ciclos de utilização adicionais para outras VMs com excesso de compromisso utilizarem. Além disso, as cargas de trabalho com uma utilização média da CPU baixa, mas com um pico de utilização baixo, podem beneficiar de diferentes tamanhos de tipos de máquinas.
A utilização excessiva da CPU beneficia cargas de trabalho com picos de atividade não correlacionados que têm uma utilização máxima elevada e uma utilização média baixa, porque é mais provável que estas cargas de trabalho tenham recursos da CPU disponíveis para partilhar entre VMs quando algumas VMs precisam de aumentar a respetiva utilização. Se todas as VMs num anfitrião tiverem um pico de atividade ao mesmo tempo, o anfitrião não tem recursos suficientes para as suas VMs.
Limitações
- Limitações de carga de trabalho
O overcommit de CPU é mais adequado para cargas de trabalho sem requisitos de desempenho rigorosos, por exemplo, cargas de trabalho de desenvolvimento e teste, e infraestruturas de computadores virtuais.
Os níveis elevados de sobrecompromisso da CPU podem não ser adequados para cargas de trabalho sensíveis ao desempenho.
Para cargas de trabalho com uma utilização média e máxima consistentemente baixa, a Google recomenda o ajuste de tamanho. Ou seja, em vez de comprometer em excesso as CPUs, recomendamos que modifique o tamanho da instância de VM para corresponder aos requisitos de recursos dessa carga de trabalho.
Se as suas instâncias estiverem demasiado sobrecomprometidas, mova-as para outro nó de inquilino único.
- Limitações do tipo de máquina
Só pode comprometer em excesso CPUs nos seguintes casos:
VMs da série de máquinas N1 aprovisionadas em grupos de nós baseados no
n1-node-96-624
tipo de nóVMs da série de máquinas N2 aprovisionadas em grupos de nós baseados nos seguintes tipos de nós:
n2-node-80-640
n2-node-128-864
Série de máquinas N2D VMs aprovisionadas em grupos de nós baseados nos seguintes tipos de nós:
n2d-node-224-896
n2d-node-224-1792
- Limitações do nível de compromisso excessivo
Só pode configurar a CPU mínima em cada nó de inquilino único para metade das CPUs da VM, o que permite uma taxa de sobrecompromisso máxima do nó de inquilino único de 2,0.
- Limitações de agendamento de VMs
Os grupos de nós de inquilino único baseados em modelos de nós de inquilino único que não estão configurados para o excesso de compromisso de CPU não permitem o aprovisionamento de VMs com o excesso de compromisso de CPU ativado. Ou seja, não pode agendar uma VM com um número mínimo especificado de CPUs num grupo de nós de inquilino único que não esteja configurado para o overcommit de CPU.
Quota
A quota de CPUs baseia-se no número de CPUs virtuais do tipo de nó de inquilino único e não no potencial máximo de CPUs virtuais disponíveis para compromisso excessivo.
Custos
Os nós de inquilino único que tenham o overcommit de CPU selecionado no respetivo modelo de nó são cobrados 25% adicionais. Este custo acresce ao prémio de 10% para a execução de VMs em nós de inquilino único. A sobrecarga de CPU premium é fixa, independentemente do nível de sobrecarga de CPU e do número de VMs agendadas no nó de inquilino único.
Os nós de inquilino único oferecem descontos por utilização comprometida. Os descontos por utilização sustentada estão disponíveis para o premium de inquilino único e o premium de compromisso excessivo de CPUs.
Para estimar o custo de execução de VMs em nós de inquilino único, consulte a calculadora de preços.
Configure VMs de inquilino único para sobrecompromisso
Para configurar VMs de inquilino único de modo a terem recursos de CPU disponíveis para compromisso excessivo, faça o seguinte:
Crie um modelo de nó de inquilino único com o overcommit de CPU ativado. Tem de ativar o overcommit de CPU ao criar o modelo de nó. Não pode ativar o overcommit de CPU após criar um modelo de nó.
Crie um grupo de nós de inquilino único com base no modelo de nó de inquilino único que tem o overcommit de CPU ativado.
Crie uma VM e faça o seguinte:
Escolha um tipo de máquina para a VM. O número de CPUs no tipo de máquina representa o número máximo de CPUs que a VM pode aumentar a partir do número mínimo de CPUs se o número mínimo de CPUs for inferior ao número de CPUs especificado pelo tipo de máquina.
Pode escolher um tipo de máquina diferente para cada VM num nó de inquilino único, desde que não exceda a capacidade de CPU e memória do nó de inquilino único.
Especifique o número mínimo de CPUs a atribuir a essa única VM ou use um grupo de instâncias gerido para criar várias VMs com o mesmo nível de sobrecompromisso de CPU.
Antes de começar
-
Crie um modelo de nó de inquilino único e especifique
--cpu-overcommit-type=enabled
. - Crie um grupo de nós de inquilino único com base no modelo de nó de inquilino único com o overcommit de CPU ativado.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Defina o nível de sobrecompromisso da CPU
Os procedimentos seguintes mostram como criar uma VM de inquilino único com recursos de CPU disponíveis para compromisso excessivo. Se precisar de modificar o nível de sobrecompromisso da CPU de uma VM em execução, tem de parar primeiro a VM.
Consola
Na Google Cloud consola, crie uma VM de inquilino único num grupo de nós de inquilino único que foi criado a partir de um modelo de nó de inquilino único com o overcommit de CPU ativado:
Aceda à página Nós de inquilino único.
Clique em Grupos de nós.
Clique no grupo de nós de inquilino único no qual quer criar uma VM.
Clique em Criar instância.
Especifique o nome, a região e a zona da VM.
Em Configuração da máquina, escolha um tipo de máquina fixo ou personalizado com, pelo menos, 4 vCPUs.
Em Excesso de compromisso da CPU, selecione Ativar excesso de compromisso da CPU.
Em vCPUs mínimas atribuídas, ajuste o controlo de deslize ou introduza manualmente o número de vCPUs para especificar o nível de compromisso excessivo para as CPUs nesta VM.
Clique em Criar para criar uma instância de VM com recursos de CPU disponíveis para compromisso excessivo.
gcloud
O exemplo seguinte mostra como usar o comando
gcloud compute instances create
para criar uma VM de inquilino único num tipo de máquina predefinido com recursos da CPU disponíveis para compromisso excessivo.gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --min-node-cpu=MIN_VCPUS \ --node-group=GROUP_NAME
Substitua o seguinte:
VM_NAME
: o nome da VM na qual vai comprometer CPUs em excesso.MACHINE_TYPE
: o tipo de máquina para aprovisionar a VM de inquilino único. O número de CPUs especificado pelo tipo de máquina é o número máximo de CPUs que a VM pode aumentar até MIN_VCPUS.MIN_VCPUS
: o número mínimo de vCPUs garantido que está disponível para esta VM.GROUP_NAME
: o nome do grupo de nós de inquilino único no qual aprovisionar a VM.
Definir o nível de compromisso excessivo num tipo de máquina personalizado
Para criar uma VM de inquilino único com recursos de CPU disponíveis para comprometer em excesso num tipo de máquina personalizado, omita a flag
--machine-type
e, em alternativa, use as flags--custom-cpu
e--custom-memory
para especificar o número de CPUs e a quantidade de memória, em gigabytes, para a máquina personalizada.REST
O exemplo seguinte mostra como usar o método
instances.insert
para criar uma VM de inquilino único num tipo de máquina fixo com recursos de CPU disponíveis para compromisso excessivo.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "minNodeCpus": MIN_VCPUS, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, ... }
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.ZONE
: a zona para este pedido.MACHINE_TYPE_ZONE
: a zona que aloja o tipo de máquina.MACHINE_TYPE
: o tipo de máquina no qual aprovisionar a VM de inquilino único. O número de CPUs especificado pelo tipo de máquina é o número máximo de CPUs que a VM pode aumentar a partir deMIN_VCPUS
.VM_NAME
: o nome da VM de inquilino único para comprometer CPUs em excesso.MIN_VCPUS
: o número mínimo de vCPUs garantido que está disponível para esta VM.GROUP_NAME
: o nome do grupo de nós de inquilino único no qual aprovisionar a VM.
Definir o nível de compromisso excessivo num tipo de máquina personalizado
Para criar uma VM de inquilino único com recursos de CPU disponíveis para compromisso excessivo num tipo de máquina personalizado, substitua o valor do campo
machineType
porzones/zone/machineTypes/custom-CPUS-MEMORY
, substituindoCPUS
pelo número de CPUs eMEMORY
pela quantidade de memória, em megabytes, para o tipo de máquina personalizado.Atualize o nível de compromisso excessivo da CPU
Os procedimentos seguintes mostram como atualizar o nível de sobrecompromisso da CPU de uma VM de inquilino único.
gcloud
Para modificar o nível de compromisso excessivo da CPU de uma VM em execução, tem de parar primeiro a VM. Para parar uma VM, use o comando
gcloud compute instances stop
da seguinte forma:gcloud compute instances stop VM_NAME
Substitua
VM_NAME
pelo nome da instância que quer parar.Para atualizar o nível de sobrecompromisso da CPU de uma VM de inquilino único, use o comando
gcloud compute instances set-scheduling
da seguinte forma:gcloud compute instances set-scheduling VM_NAME \ --min-node-cpu=MIN_VCPUS
Substitua o seguinte:
VM_NAME
: o nome da VM de inquilino único a modificar o nível de compromisso excessivo da CPU.MIN_VCPUS
: o número mínimo de vCPUs garantido que está disponível para esta VM.
REST
Para modificar o nível de compromisso excessivo da CPU de uma VM em execução, tem de parar primeiro a VM. Para parar uma VM, crie um pedido
POST
usando o métodoinstances.stop
da seguinte forma:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.ZONE
: a zona para este pedido.VM_NAME
: o nome da VM de inquilino único a modificar o nível de compromisso excessivo da CPU.
Para atualizar o nível de sobrecompromisso da CPU de uma VM de inquilino único, use o método
instances.setScheduling
da seguinte forma:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "minNodeCpus":MIN_VCPUS }
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.ZONE
: a zona para este pedido.VM_NAME
: o nome da VM de inquilino único a modificar o nível de compromisso excessivo da CPU.MIN_VCPUS
: o número mínimo de vCPUs garantido que está disponível para esta VM.
Desative o excesso de compromisso da CPU para VMs de inquilino único
Os procedimentos seguintes mostram como desativar a sobreafetação da CPU de uma VM de inquilino único.
gcloud
O exemplo seguinte mostra como usar o comando
gcloud compute instances set-scheduling
para desativar a sobreposição de recursos da CPU de uma VM de inquilino único.gcloud compute instances set-scheduling VM_NAME \ --clear-min-node-cpu
Substitua o seguinte:
VM_NAME
: o nome da VM de inquilino único para desativar o compromisso excessivo de CPU.
REST
O exemplo seguinte mostra como usar o comando
instances.setScheduling
para desativar a sobrecomprometimento da CPU de uma VM de inquilino único.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "minNodeCpus":null }
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.ZONE
: a zona para este pedido.VM_NAME
: o nome da VM de inquilino único para desativar a sobrealocação da CPU.
Veja a utilização da CPU
Para verificar a utilização da CPU de VMs de inquilino único num grupo de nós de inquilino único, faça o seguinte:
Na Google Cloud consola, aceda à página Nós de inquilino único.
Clique em Grupos de nós.
Clique no grupo de nós de inquilino único que contém o nó de inquilino único com as CPUs sobrecomprometidas.
Clique no nó de inquilino único que tem a VM com CPUs em excesso.
Abaixo do nome do nó de inquilino único, veja a utilização da CPU, o tipo de sobrecompromisso da CPU e a utilização mínima da CPU.
A utilização da CPU mostra o total do número máximo de CPUs para todas as VMs neste nó de inquilino único dividido pelo número de CPUs especificado pelo tipo de nó de inquilino único.
O número de CPUs no nó disponíveis para comprometer em excesso é o numerador menos o denominador, e o nível de compromisso excessivo é o quociente do numerador e do denominador.
A utilização mínima da CPU mostra a soma do número mínimo de CPUs atribuídas a todas as VMs num nó de inquilino único dividido pelo número de CPUs especificado pelo tipo de nó.
Otimize os níveis de sobrecompromisso da CPU
Para ajudar a otimizar o ajuste dos níveis de sobrecompromisso da CPU, o Compute Engine fornece a métrica Tempo de espera do programador. A métrica Tempo de espera do programador indica o tempo de espera agregado para todas as vCPUs na VM e ajuda a determinar o impacto do compromisso excessivo de CPU no desempenho da VM.
A sensibilidade da carga de trabalho varia, mas uma regra geral é usar 20 milissegundos de tempo de espera do programador acumulado por segundo (20 msps) como o tempo de espera máximo para cada vCPU. Por exemplo, se uma VM estiver definida para 8 vCPUs, o limite de uma regra geral é de 160 msps, o que resulta num tempo de espera do agendador médio aceitável de 20 msps por vCPU. Os requisitos de desempenho da sua carga de trabalho determinam, em última análise, os limites aceitáveis.
Na Google Cloud consola, aceda à página Monitorização.
Clique em Explorador de métricas.
No campo Tipo de recurso, introduza VM Instance.
No campo Métrica, introduza Tempo de espera do agendador.
Opcionalmente, configure alertas para acionar alertas para limites de tempo de espera da VM clicando em Alertas.
O que se segue?
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-