Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Este documento explica o comportamento, o faturamento e as limitações da unidade de monitoramento de desempenho (PMU, na sigla em inglês) no Compute Engine. Para saber como ativar a PMU em uma
instância de máquina virtual (VM) C4A ou C4, consulte
Ativar a PMU em VMs.
A PMU é um componente de hardware no núcleo da CPU que monitora como o
processador executa o código. Ao ativar a PMU em uma VM C4A ou C4, você pode acessar os
contadores de desempenho na PMU usando um software de monitoramento de desempenho. Essa
abordagem permite otimizar cargas de trabalho sensíveis ao desempenho, como computação de
alto desempenho (HPC) ou cargas de trabalho de machine learning (ML), ajudando você a
identificar e resolver gargalos de desempenho nos seus aplicativos.
Como a PMU funciona
A PMU é composta por um conjunto de contadores de hardware chamados contadores de monitoramento de desempenho
(PMCs, na sigla em inglês). Esses contadores são
registros específicos do modelo
que contam cada vez que um evento de processador de baixo nível, como um erro de previsão de ramificação
ou ausência no cache, ocorre na CPU. É possível ler e configurar PMCs no PMU
usando um software de monitoramento de desempenho, como o
Intel VTune Profiler.
Por padrão, a PMU fica desativada nas VMs. Para ativá-la, especifique os tipos de
eventos de CPU de baixo nível a serem rastreados ativando um dos seguintes tipos de PMU:
Arquitetural (ARCHITECTURAL): é possível medir os seguintes
eventos de performance de arquitetura:
Instruções da ramificação desativadas: o número de instruções da ramificação
desativadas. Use esse evento para medir a execução do código e identificar
possíveis gargalos de desempenho.
A ramificação ausente foi removida: o número de instruções da ramificação que foram
previstos incorretamente, fazendo com que o processador trave e descarte as
instruções buscadas. Se você vir um número alto para esse evento, poderá
otimizar o desempenho da CPU.
Instruções desativadas: o número de instruções que a CPU
processa corretamente. Use esse evento para medir a capacidade de processamento de instruções
da CPU.
Slots de cima para baixo: o número de slots disponíveis no pipeline do processador
que são usados para executar instruções simultaneamente. Use esse evento
para entender com que eficiência seu código está usando o
recurso do processador.
Ciclos de núcleo não interrompidos: o número de ciclos de núcleo quando a linha de execução não é
interrompida, por exemplo, devido ao gerenciamento de energia ou interrupções. Use
esse evento para avaliar o uso geral do processador.
Ciclos de referência não interrompidos: o número de ciclos de referência em que o
núcleo não é interrompido, por exemplo, ao buscar dados ou
instruções. O núcleo é interrompido quando executa as
instruções HLT ou MWAIT.
Os ciclos de referência operam em uma frequência fixa, fornecendo uma referência de tempo
estável mesmo quando a velocidade do processador muda para economizar
energia. Use esse evento para medir o tempo gasto em uma tarefa e identificar
gargalos de desempenho no código.
Padrão (STANDARD): é possível medir todos os eventos do
tipo de PMU e quaisquer eventos locais dentro do núcleo da CPU, incluindo eventos de cache de nível 2 (L2).
Aprimorado (ENHANCED): você pode medir todos os eventos do tipo de PMU padrão
eventos locais fora do núcleo da CPU, incluindo eventos de cache do nível 3 (L3).
Depois de ativar a PMU em uma VM, ela será executada em segundo plano, continuamente
de monitorando eventos de desempenho
usando PMCs. Você pode configurar
limites para PMCs específicos usando seu software de monitoramento de desempenho
preferido. Se uma PMC exceder o limite designado, ela notificará o
software.
Limitações
A PMU tem as seguintes limitações:
Só é possível ativar a PMU nas seguintes plataformas de CPU:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-19 UTC."],[[["\u003cp\u003eThe Performance Monitoring Unit (PMU) is a hardware component in the CPU core that monitors processor code execution and can be enabled in C4A or C4 virtual machines (VMs) to access performance counters.\u003c/p\u003e\n"],["\u003cp\u003eEnabling the PMU allows users to measure low-level processor events, such as branch mispredictions and cache misses, using performance-monitoring software to help optimize workloads like HPC and ML.\u003c/p\u003e\n"],["\u003cp\u003eThe PMU supports three types of performance monitoring events: Architectural, which measures general events like branch instructions and core cycles; Standard, which also measures local events within the CPU core; and Enhanced, which additionally includes local events outside the CPU core.\u003c/p\u003e\n"],["\u003cp\u003eThe PMU can only be enabled on Google Axion C4A VMs or Intel Xeon Scalable Processor (Emerald Rapids) 5th generation C4 VMs, with the Enhanced PMU type limited to C4 machines with 96 or 192 vCPUs.\u003c/p\u003e\n"],["\u003cp\u003eThere are no additional costs associated with enabling or disabling the PMU in a VM.\u003c/p\u003e\n"]]],[],null,["# PMU overview\n\n*** ** * ** ***\n\nThis document explains the behavior, billing, and limitations of the performance\nmonitoring unit (PMU) in Compute Engine. To learn how to enable the PMU in a\nC4A or C4 virtual machine (VM) instance, see\n[Enable the PMU in VMs](/compute/docs/enable-pmu-in-vms).\n\nThe PMU is a hardware component within the CPU core that monitors how the\nprocessor runs code. By enabling the PMU in a C4A or C4 VM, you can access the\nperformance counters in the PMU using performance-monitoring software. This\napproach lets you optimize performance-sensitive workloads, such as high\nperformance computing (HPC) or machine learning (ML) workloads, by helping you\nidentify and address performance bottlenecks in your applications.\n\nHow the PMU works\n-----------------\n\nThe PMU is composed of a set of hardware counters called performance monitoring\ncounters (PMCs). These counters are\n[model-specific registers](https://en.wikipedia.org/wiki/Model-specific_register)\nthat count each time a low-level processor event, such as a branch misprediction\nor cache miss, occurs within the CPU. You can read and configure PMCs in the PMU\nby using performance-monitoring software such as\n[Intel VTune Profiler](https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html).\n\nBy default, the PMU is disabled within VMs. To enable it, specify the types of\nlow-level CPU events to track by enabling one of the following PMU types:\n\n- **Architectural (`ARCHITECTURAL`)**: You can measure the following\n architectural performance events:\n\n - **Branch instructions retired**: The number of branch instructions\n retired. Use this event to measure your code's execution and identify\n potential performance bottlenecks.\n\n - **Branch misses retired**: The number of branch instructions that were\n mispredicted, causing the processor to stall and discard fetched\n instructions. If you see a high number for this event, then you can\n likely optimize the CPU performance.\n\n - **Instructions retired**: The number of instructions the CPU\n successfully processes. Use this event to measure the CPU's instruction\n throughput.\n\n - **Top down slots**: The number of available slots within a processor's\n pipeline that are used to simultaneously execute instructions. Use this\n event to understand how efficiently your code is using the processor's\n resources.\n\n - **Unhalted core cycles**: The number of core cycles when the thread is\n not halted---for example, due to power management or interrupts. Use\n this event to evaluate the overall usage of the processor.\n\n - **Unhalted reference cycles** : The number of reference cycles when the\n core is not halted---for example, when fetching data or\n instructions. The core is halted when it runs the\n [`HLT` or `MWAIT` instructions](https://en.wikipedia.org/wiki/HLT_(x86_instruction)).\n Reference cycles operate at a fixed frequency, providing a stable time\n reference even when the speed of the processor changes to preserve\n energy. Use this event to measure the time spent on a task and identify\n performance bottlenecks in your code.\n\n- **Standard (`STANDARD`)**: You can measure all events from the Architectural\n PMU type and any local events inside the CPU core, including level 2 (L2)\n cache events.\n\n- **Enhanced (`ENHANCED`)**: You can measure all events from the Standard PMU\n type, any local events outside the CPU core, including level 3 (L3) cache\n events.\n\nAfter you enable the PMU in a VM, the PMU runs in the background, continuously\nmonitoring performance events using PMCs. You can optionally configure\nthresholds for specific PMCs using your preferred performance-monitoring\nsoftware. If a PMC exceeds its designated threshold, then the PMU notifies the\nsoftware.\n\nLimitations\n-----------\n\nThe PMU has the following limitations:\n\n- You can only enable the PMU in the following CPU platforms:\n\n- You can enable the Enhanced PMU type only in VMs that use a C4 machine type\n with 96 or 192 vCPUs.\n\nPricing\n-------\n\nThere are no costs associated with enabling or disabling the PMU in a VM.\n\nWhat's next\n-----------\n\n- [Enable the PMU in VMs](/compute/docs/enable-pmu-in-vms)\n\n- [Enable the PMU in Google Kubernetes Engine clusters](/kubernetes-engine/docs/how-to/analyzing-cpu-performance-using-pmu)"]]