O Compute Engine atribui vCPUs às instâncias de máquina virtual (VM) ou bare metal quando você as cria. Neste documento, explicamos como as vCPUs são mapeadas para o hardware físico para ajudar você a otimizar o desempenho, gerenciar custos e obedecer aos requisitos de licenciamento de software.
Entender as vCPUs
Uma CPU virtual (vCPU) representa uma unidade de capacidade de unidade central de processamento (CPU) atribuída à sua instância de computação. Dependendo da arquitetura do processador subjacente, uma vCPU é programada para ser executada em uma única linha de execução de hardware ou em um núcleo de CPU física dedicado inteiro.
As vCPUs fazem parte de uma plataforma de CPU. Uma plataforma de CPU é uma configuração baseada em CPU que inclui o seguinte:
- Tipo de processador de CPU
- Conjuntos de instruções (como AVX2 e AVX-512)
- Tamanhos de cache
- Velocidades do clock
- Divisões de NUMA
- Tempos de busca de acesso à memória
- Aceleradores no chip
Alocar vCPUs para uma instância de computação
Para criar uma VM ou uma instância bare metal (coletivamente chamadas de instância de computação), use um tipo de máquina. O tipo de máquina determina os recursos
que o Compute Engine aloca para a instância. Por exemplo, o tipo de máquina c4-standard-4 cria uma VM com 4 vCPUs e 16 GB de memória.
Para ajudar você a escolher o tipo de máquina certo para sua carga de trabalho, o Compute Engine agrupa os tipos de máquina em famílias de máquinas e séries de máquinas.
- Família de máquinas: um conjunto selecionado de configurações de processador e hardware otimizadas para cargas de trabalho específicas, por exemplo, Uso geral, Otimização para acelerador ou Otimização de memória.
Série de máquinas: uma combinação específica de processador de CPU, hardware e recursos de rede em uma família de máquinas. Cada série se concentra em um aspecto diferente de capacidade de computação ou desempenho. Por exemplo, a série E oferece VMs eficientes a um custo baixo, enquanto a série C oferece um desempenho melhor e mais consistente do que a série E.
- Uma série de máquinas pode ter várias gerações, como C3 e C4. Um número de geração ou de série maior indica processadores ou tecnologias de CPU mais recentes. Por exemplo, a série M4, que é executada em processadores Intel Xeon de 5ª geração (também conhecidos como Emerald Rapids), é uma geração mais recente do que a série de máquinas M3, que é executada em processadores Intel Xeon de 3ª geração (também conhecidos como Ice Lake).
- A arquitetura subjacente para uma série de máquinas e um tipo de máquina é indicada por uma letra no final do nome da série de máquinas. Por exemplo, a série de máquinas C de 4ª geração está disponível como C4 (Intel), C4D (AMD), C4A (Arm) ou C4N (otimizada para rede).
Mapeamento de núcleo físico e multissegmentação simultânea
Na maioria dos processadores x86, cada núcleo de CPU física é compatível com duas linhas de execução de hardware. Os processadores Intel Xeon usam o Intel Hyper-Threading, e os processadores AMD EPYC usam o multithreading simultâneo (SMT). Para esses processadores, o Compute Engine implementa cada vCPU como uma única linha de execução de hardware em execução em um núcleo físico. Assim, duas vCPUs compartilham um único núcleo de CPU físico (uma proporção de 2:1 de vCPUs para núcleos físicos). Por exemplo, uma VM com 4 vCPUs usa 2 núcleos de CPU física com SMT.
Em determinadas séries de máquinas e arquiteturas de processador, o Compute Engine não usa SMT. Em vez disso, cada vCPU é mapeada diretamente para um núcleo de CPU físico dedicado (uma proporção de 1:1 de vCPUs para núcleos físicos):
- Processadores Arm: em séries de máquinas baseadas em Arm64, como N4A, C4A ou A4X, a arquitetura de hardware usa núcleos de linha de execução única. Cada vCPU representa um núcleo físico completo.
- Série de máquinas com otimização para computação: as séries de máquinas H4D e H3 não são compatíveis com SMT. Cada vCPU representa um núcleo de CPU física inteiro, oferecendo alto desempenho de linha de execução única e eliminando a contenção de recursos entre linhas de execução.
- Série de máquinas Tau: para as séries de máquinas Tau T2A (com tecnologia de processadores Ampere Altra) e Tau T2D (com tecnologia de processadores AMD EPYC Milan de 3ª geração), o Compute Engine desativa a SMT por padrão. Esses tipos de instância de computação sempre têm uma vCPU por núcleo.
- Instâncias bare metal: para instâncias bare metal, uma vCPU é equivalente a uma CPU. O número de vCPUs disponíveis para a instância é equivalente ao número de linhas de execução de hardware no servidor host. Não é possível ajustar ou definir manualmente as linhas de execução por núcleo.
Para atender a requisitos específicos de carga de trabalho ou licenciamento de software, é possível personalizar como as vCPUs aparecem para o sistema operacional convidado. Para mais informações, consulte Personalizar o número de núcleos de CPU visíveis. Para uma lista das séries de máquinas e arquiteturas que não usam SMT, consulte Definir o número de linhas de execução por núcleo.
vCPUs dedicadas x de núcleo compartilhado
Quando você escolhe um tipo de máquina, as vCPUs são mapeadas para uma linha de execução de hardware de CPU ou usam um modelo de recurso de núcleo compartilhado:
- vCPUs completas: os tipos de máquina padrão, com alta memória, com grande quantidade de CPUs e personalizados
alocam uma linha de execução de hardware ou um núcleo físico para cada vCPU.
- Para as séries de máquinas N4, N4A, N4D e E2 na família de máquinas de uso geral, o sistema de gerenciamento dinâmico de recursos (DRM, na sigla em inglês) garante que cada vCPU ativa tenha uma linha de execução de hardware disponível. O DRM permite que o Compute Engine utilize melhor as CPUs físicas disponíveis programando instâncias de computação para servidores com base na demanda de recursos e programando linhas de execução de vCPU para CPUs físicas, de modo que o tempo de espera seja minimizado. As séries de máquinas N1, N2 e N2D na família de máquinas de uso geral usam a programação de host padrão.
- Para as séries de máquinas C, M, G, Z e A, os recursos de vCPU são atribuídos exclusivamente à sua instância e nunca compartilham ciclos de execução com outras instâncias de computação.
vCPUs de núcleo compartilhado: os tipos de máquina com núcleo compartilhado são
e2-micro,e2-small,e2-medium,f1-microeg1-small. Esses tipos de máquina compartilham um núcleo de CPU físico usando a alternância de contexto. Em vez de threads de hardware dedicados, essas VMs de núcleo compartilhado utilizam uma fração específica do tempo do núcleo físico:e2-micromantém duas vCPUs a 12,5% do tempo de CPU cada (25% no total).e2-smallmantém duas vCPUs com 25% do tempo de CPU cada (50% no total).e2-mediummantém duas vCPUs com 50% do tempo de CPU cada (100% no total).f1-micromantém uma vCPU por até 20% do tempo de CPU.g1-smallmantém uma vCPU por até 50% do tempo de CPU.
Em comparação com as VMs com vCPUs completas, as VMs com vCPUs de núcleo compartilhado são uma opção econômica para executar aplicativos pequenos que não consomem muitos recursos, microsserviços ou cargas de trabalho de desenvolvimento ou teste que não exigem capacidade de processamento de pico contínua da CPU.
Características de desempenho da vCPU
O desempenho de processamento de uma vCPU depende da plataforma de CPU, da velocidade do clock, da hierarquia de cache, da dinâmica de multithreading e da programação de recursos.
Plataformas de CPU e conjuntos de instruções
O Compute Engine oferece instâncias de computação que são executadas em várias gerações de processadores Intel, AMD, Arm e personalizados do Google. Cada plataforma de CPU apresenta melhorias de microarquitetura e conjuntos de instruções especializados:
- Advanced Vector Extensions (AVX-512): disponível em plataformas Intel (como Ice Lake, Emerald Rapids e Sapphire Rapids) e AMD EPYC (Genoa e Turin), o AVX-512 acelera a matemática vetorial, a computação científica e a compactação de dados.
- AMX e VNNI: essas extensões aceleram a inferência de aprendizado profundo e as operações de matriz diretamente na vCPU.
- As Advanced Matrix Extensions (AMX) estão disponíveis nos processadores Intel (Intel Xeon de 4ª geração Sapphire Rapids e mais recentes).
- As instruções de rede neural vetorial (VNNI, na sigla em inglês) estão disponíveis nos processadores Intel e AMD EPYC (Genoa de 4ª geração e mais recentes).
- Arm NEON e SVE: o Arm NEON, disponível na plataforma de CPU Ampere Altra, e a Scalable Vector Extension (SVE), disponível nas plataformas de CPU Google Axion e NVIDIA Grace, oferecem execução de vetores escalonável para cargas de trabalho da Web nativas da nuvem.
Velocidade do clock e frequência turbo
Uma vCPU executa instruções na frequência de clock base do processador físico subjacente. Quando as cargas de trabalho exigem mais capacidade de processamento e a margem térmica permite, os processadores aumentam automaticamente a frequência para uma frequência turbo de todos os núcleos ou de um único núcleo.
Algumas séries de máquinas operam com as velocidades de clock sustentadas mais altas no Compute Engine. Por exemplo, a C4 em execução no Granite Rapids tem até 3,9 GHz de frequência turbo em todos os núcleos, e a A3 Mega ou a A3 High têm até 3,8 GHz de frequência turbo em todos os núcleos. Escolha vCPUs de alta frequência para aplicativos de thread único, automação de design eletrônico (EDA) e servidores de jogos.
Para ver as frequências de cada plataforma de CPU usada pelo Compute Engine, consulte Plataformas de CPU.
Compartilhamento de recursos de multissegmentação
Em tipos de máquina com SMT ativo (2 vCPUs por núcleo), as duas linhas de execução de hardware compartilham os caches de instrução e dados de nível 1 (L1), o cache de nível 2 (L2), as unidades de execução e os buffers de consulta de tradução (TLBs, na sigla em inglês) do núcleo físico.
- Cargas de trabalho simultâneas e vinculadas a E/S: para servidores da Web, gateways de API e operações de banco de dados com acesso frequente à memória, o SMT aumenta a capacidade de processamento geral do núcleo executando instruções em uma linha de execução enquanto a outra aguarda a recuperação da memória.
- Cargas de trabalho vinculadas à computação: para aplicativos que saturam continuamente unidades de usar pontos flutuantes ou caches L1/L2, o compartilhamento de unidades de execução entre duas vCPUs pode causar contenção de recursos. Se a carga de trabalho tiver contenção em instâncias de computação com SMT ativado, desative o SMT definindo as linhas de execução por núcleo como 1 ou migre para uma série de máquinas com núcleos físicos dedicados (como C4A ou H4D).
Gerenciamento dinâmico de recursos e monitoramento de desempenho
O Compute Engine usa otimizações especializadas de hardware e software para manter a latência previsível da vCPU:
- Arquitetura do Google Titanium: as séries de máquinas de última geração (incluindo N4, N4D, N4A, C3, C3D e C4) usam placas de descarregamento do Google Titanium, um programador de CPU personalizado e migração em tempo real com reconhecimento de desempenho. O gerenciamento de recursos dinâmicos preserva a afinidade de acesso à memória não uniforme (NUMA, na sigla em inglês) e minimiza a interferência de vizinhos barulhentos.
- Gerenciamento de recursos dinâmicos para E2: para VMs E2, o hipervisor mapeia dinamicamente a CPU virtual e a memória para recursos físicos sob demanda. Esse mapeamento dinâmico gera eficiência de custo ao otimizar o uso de recursos físicos.
- Unidade de monitoramento de desempenho (PMU): é possível ativar a PMU em séries de máquinas compatíveis (como C4, M4 e A4X) para acessar contadores de hardware de baixo nível. As ferramentas de criação de perfil usam contadores de PMU para rastrear erros de previsão de ramificação, ausências no cache e instruções por ciclo (IPC).
- Agente de operações: é possível instalar o Agente de operações nas instâncias de computação para monitorar a utilização da CPU e coletar telemetria no nível do sistema. O Agente de Operações envia esses dados para o Google Cloud Observability para ajudar você a analisar e otimizar o desempenho da vCPU.
Considerações de preço
Ao planejar o orçamento e a capacidade das suas cargas de trabalho, considere como o Compute Engine cobra pelas vCPUs e os modelos de desconto disponíveis.
Granularidade do faturamento de recursos
Para a maioria das séries de máquinas, o Compute Engine cobra vCPUs e memória do sistema como recursos dedicados separados. Você paga pelas instâncias por segundo, com uma duração mínima de faturamento de um minuto para cada instância de computação iniciada. Após o primeiro minuto, você paga apenas pelos segundos exatos em que a instância permanece em execução.
Para tipos de máquina com núcleo compartilhado (como núcleo compartilhado E2 e núcleo compartilhado N1), o Compute Engine agrupa vCPUs e memória em uma única taxa horária combinada, em vez de cobrá-los como recursos individuais.
Confira as taxas de faturamento de vCPU nas páginas de preços de instâncias de VM.
Otimização de custos e descontos
É possível reduzir os custos de faturamento de vCPU usando as seguintes opções de preços:
- Descontos por compromisso de uso (CUDs): se as cargas de trabalho tiverem requisitos de vCPU previsíveis e estáveis, será possível comprar compromissos de um ou três anos para receber descontos de até 55% a 70% nos preços sob demanda. O Compute Engine oferece CUDs com base em recursos para séries de máquinas específicas em uma região e CUDs flexíveis com base em gastos que se aplicam a várias séries de máquinas e regiões. É possível compartilhar CUDs entre projetos na sua conta do Cloud Billing.
- Descontos por uso prolongado (SUDs, na sigla em inglês): para séries de máquinas qualificadas (como N1, N2, N2D, C2, M1 e M2), o Compute Engine aplica automaticamente SUDs quando as vCPUs são executadas por mais de 25% de um mês de faturamento. Executar uma instância de VM continuamente durante todo o mês oferece um desconto de até 20% ou 30%, dependendo da série de máquinas. As séries de máquinas com preços sob demanda reduzidos (incluindo E2, N4, C3, C4, Tau T2A e A3) não oferecem SUDs.
- VMs spot: para cargas de trabalho tolerantes a falhas, sem estado ou em lote, as VMs spot oferecem até 60% a 91% de desconto nos preços padrão de vCPU sob demanda. O Compute Engine pode interromper ou recuperar VMs spot a qualquer momento para recuperar capacidade.
- Nós de locatário individual e alocação extra de vCPU: ao executar instâncias de VM em nós de locatário individual, você paga pelo servidor host físico dedicado, em vez de vCPUs individuais. Em nós de locatário individual, é possível configurar a alocação extra de CPU (até uma proporção de 2:1) para programar mais vCPUs nas instâncias de VM do que o host físico tem núcleos, reduzindo os custos de computação para ambientes de desenvolvedor ou de teste.
- Dynamic Workload Scheduler (DWS):
para cargas de trabalho de IA ou ML, é possível otimizar os custos de vCPU e melhorar a disponibilidade
de recursos usando o DWS.
- VMs flex-start: use para programação econômica e flexível de cargas de trabalho que são executadas por até sete dias.
- Solicitações de reserva adiantada no modo calendário: use para reservar recursos por até 90 dias em uma data e hora futuras específicas.
- Recomendações de redimensionamento: o Compute Engine analisa as métricas históricas de utilização de vCPU e fornece recomendações automatizadas de tipo de máquina e de instância de computação ociosa. Aplicar essas recomendações ajuda a redimensionar vCPUs superprovisionadas ou interromper instâncias inativas.
Disponibilidade da série de máquinas
A tabela a seguir mapeia modelos de arquitetura de vCPU, proporções de multissegmentação e contagens máximas de vCPUs em séries de máquinas do Compute Engine. As contagens máximas de vCPUs refletem o maior tipo de máquina em cada série, incluindo instâncias bare metal.
| Família de máquinas | Série de máquina | Arquitetura do processador | Proporção de vCPUs por núcleo | Máximo de vCPUs | Opção de núcleo compartilhado |
|---|---|---|---|---|---|
| Uso geral | E2 |
Intel Xeon / AMD EPYC | 2 vCPUs : 1 núcleo (SMT) | 32 vCPUs | Sim (e2-micro, e2-small, e2-medium) |
| Uso geral | N1 |
Várias gerações de processadores Intel Xeon | 2 vCPUs : 1 núcleo (SMT) | 96 vCPUs | Sim (f1-micro, g1-small) |
| Uso geral | N2 |
Intel Xeon (Cascade Lake / Ice Lake) | 2 vCPUs : 1 núcleo (SMT) | 128 vCPUs | Não |
| Uso geral | N2D |
AMD EPYC (Rome / Milan) | 2 vCPUs : 1 núcleo (SMT) | 224 vCPUs | Não |
| Uso geral | N4 |
Intel Xeon de 5ª geração (Emerald Rapids) | 2 vCPUs : 1 núcleo (SMT) | 80 vCPUs | Não |
| Uso geral | N4D |
AMD EPYC de 5ª geração (Turin) | 2 vCPUs : 1 núcleo (SMT) | 96 vCPUs | Não |
| Uso geral | N4A |
Google Axion (Arm64) | 1 vCPU : 1 núcleo (sem SMT) | 64 vCPUs | Não |
| Uso geral | C3 |
Intel Xeon de 4ª geração (Sapphire Rapids) | 2 vCPUs : 1 núcleo (SMT) | 176 vCPUs | Não |
| Uso geral | C3D |
AMD EPYC de 4ª geração (Genoa) | 2 vCPUs : 1 núcleo (SMT) | 360 vCPUs | Não |
| Uso geral | C4 |
Intel Xeon de 5ª geração (Emerald Rapids) e Intel Xeon de 6ª geração (Granite Rapids) | 2 vCPUs : 1 núcleo (SMT) | 288 vCPUs | Não |
| Uso geral | C4A |
Google Axion (Arm64) | 1 vCPU : 1 núcleo (sem SMT) | 96 vCPUs | Não |
| Uso geral | C4D |
AMD EPYC de 5ª geração (Turin) | 2 vCPUs : 1 núcleo (SMT) | 384 vCPUs | Não |
| Uso geral | Tau T2A |
Ampere Altra (Arm64) | 1 vCPU : 1 núcleo (sem SMT) | 48 vCPUs | Não |
| Uso geral | Tau T2D |
AMD EPYC de 3ª geração (Milan) | 1 vCPU : 1 núcleo (SMT desativada) | 60 vCPUs | Não |
| Otimizado para computação | C2 |
Intel Xeon (Cascade Lake) | 2 vCPUs : 1 núcleo (SMT) | 60 vCPUs | Não |
| Otimizado para computação | C2D |
AMD EPYC (Milan) | 2 vCPUs : 1 núcleo (SMT) | 112 vCPUs | Não |
| Otimizado para computação | H3 |
Intel Xeon de 4ª geração (Sapphire Rapids) | 1 vCPU : 1 núcleo (sem SMT) | 88 vCPUs | Não |
| Otimizado para computação | H4D |
AMD EPYC de 5ª geração (Turin) | 1 vCPU : 1 núcleo (sem SMT) | 192 vCPUs | Não |
| Otimizado para rede | C4N |
Intel Xeon de 5ª geração (Emerald Rapids) | 2 vCPUs : 1 núcleo (SMT) | 192 vCPUs | Não |
| Otimização de memória | X4 |
Intel Xeon de 4ª geração (Sapphire Rapids) | 2 vCPUs : 1 núcleo (SMT) | 1.920 vCPUs | Não |
| Otimização de memória | M1 |
Intel Xeon (Skylake e Broadwell) | 2 vCPUs : 1 núcleo (SMT) | 160 vCPUs | Não |
| Otimização de memória | M2 |
Intel Xeon de 2ª geração (Cascade Lake) | 2 vCPUs : 1 núcleo (SMT) | 416 vCPUs | Não |
| Otimização de memória | M3 |
Intel Xeon de 3ª geração (Ice Lake) | 2 vCPUs : 1 núcleo (SMT) | 128 vCPUs | Não |
| Otimização de memória | M4 / M4N |
Intel Xeon de 5ª geração (Emerald Rapids) | 2 vCPUs : 1 núcleo (SMT) | 224 vCPUs | Não |
| Otimizado para armazenamento | Z3 |
Intel Xeon de 4ª geração (Sapphire Rapids) | 2 vCPUs : 1 núcleo (SMT) | 192 vCPUs | Não |
| Otimização de armazenamento | Z4D |
AMD EPYC de 5ª geração (Turin) | 2 vCPUs : 1 núcleo (SMT) | 288 vCPUs | Não |
| Otimização de armazenamento | Z4M |
Intel Xeon de 5ª geração (Emerald Rapids) | 1 vCPU : 1 núcleo (sem SMT) | 192 vCPUs | Não |
| Otimização de acelerador | A4X Max |
NVIDIA Grace | 1 vCPU : 1 núcleo (sem SMT) | 144 vCPUs | Não |
| Otimização de acelerador | A4X |
NVIDIA Grace | 1 vCPU : 1 núcleo (sem SMT) | 140 vCPUs | Não |
| Otimização de acelerador | A4 |
Intel Xeon de 5ª geração (Emerald Rapids) com GPUs NVIDIA | 2 vCPUs : 1 núcleo (SMT) | 224 vCPUs | Não |
| Otimização de acelerador | A3 |
Intel Xeon (Emerald Rapids e Sapphire Rapids) pareado com GPUs NVIDIA | 2 vCPUs : 1 núcleo (SMT) | 224 vCPUs | Não |
| Otimização de acelerador | A2 |
Intel Xeon de 2ª geração (Cascade Lake) com GPUs NVIDIA | 2 vCPUs : 1 núcleo (SMT) | 96 vCPUs | Não |
| Otimização de acelerador | G4 |
AMD EPYC de 5ª geração (Turin) com GPUs NVIDIA | 2 vCPUs : 1 núcleo (SMT) | 384 vCPUs | Não |
| Otimização de acelerador | G2 |
Intel Xeon de 2ª geração (Cascade Lake) com GPUs NVIDIA | 2 vCPUs : 1 núcleo (SMT) | 96 vCPUs | Não |
Para especificações detalhadas sobre memória por vCPU, largura de banda de rede e suporte a disco local em todas as séries, consulte o Guia de recursos de máquina.
A seguir
- Compare as especificações de vCPU e memória no Guia de comparação e recursos de famílias de máquinas.
- Aprenda mais sobre as plataformas de CPU disponíveis no Compute Engine.
- Consulte VMs de núcleo compartilhado para saber mais sobre instâncias de núcleo compartilhado.
- Saiba como aplicar recomendações de tipo de máquina e recomendações de VM inativa para otimizar o uso de vCPUs.