Gerenciamento de recursos de CPU do host Hyper-VHyper-V Host CPU Resource Management

Os controles de recurso de CPU do host Hyper-V introduzidos no Windows Server 2016 ou posterior permitem que os administradores do Hyper-V gerenciem e aloquem melhor os recursos de CPU do servidor host entre a partição de gerenciamento e a "raiz", bem como as VMs convidadas.Hyper-V host CPU resource controls introduced in Windows Server 2016 or later allow Hyper-V administrators to better manage and allocate host server CPU resources between the "root", or management partition, and guest VMs. Usando esses controles, os administradores podem dedicar um subconjunto dos processadores de um sistema host à partição raiz.Using these controls, administrators can dedicate a subset of the processors of a host system to the root partition. Isso pode separar o trabalho feito em um host Hyper-V das cargas de trabalhos em execução em máquinas virtuais convidadas executando-as em subconjuntos separados dos processadores do sistema.This can segregate the work done in a Hyper-V host from the workloads running in guest virtual machines by running them on separate subsets of the system processors.

Para obter detalhes sobre o hardware para hosts Hyper-V, consulte requisitos do sistema do Hyper-v do Windows 10.For details about hardware for Hyper-V hosts, see Windows 10 Hyper-V System Requirements.

Tela de fundoBackground

Antes de definir controles para recursos de CPU do host Hyper-V, é útil examinar os conceitos básicos da arquitetura do Hyper-V.Before setting controls for Hyper-V host CPU resources, it's helpful to review the basics of the Hyper-V architecture. Você pode encontrar um resumo geral na seção arquitetura do Hyper-V .You can find a general summary in the Hyper-V Architecture section. Estes são conceitos importantes para este artigo:These are important concepts for this article:

  • O Hyper-V cria e gerencia partições de máquina virtual, entre as quais os recursos de computação são alocados e compartilhados, sob o controle do hipervisor.Hyper-V creates and manages virtual machine partitions, across which compute resources are allocated and shared, under control of the hypervisor. As partições fornecem limites de isolamento fortes entre todas as máquinas virtuais convidadas e entre as VMs convidadas e a partição raiz.Partitions provide strong isolation boundaries between all guest virtual machines, and between guest VMs and the root partition.

  • A partição raiz é, em si, uma partição de máquina virtual, embora tenha propriedades exclusivas e privilégios muito maiores do que as máquinas virtuais convidadas.The root partition is itself a virtual machine partition, although it has unique properties and much greater privileges than guest virtual machines. A partição raiz fornece os serviços de gerenciamento que controlam todas as máquinas virtuais convidadas, fornece suporte a dispositivos virtuais para convidados e gerencia todas as e/s de dispositivo para máquinas virtuais convidadas.The root partition provides the management services that control all guest virtual machines, provides virtual device support for guests, and manages all device I/O for guest virtual machines. A Microsoft recomenda enfaticamente não executar cargas de trabalho de aplicativo em uma partição de host.Microsoft strongly recommends not running any application workloads in a host partition.

  • Cada processador virtual (VP) da partição raiz é mapeado 1:1 para um processador lógico subjacente (LP).Each virtual processor (VP) of the root partition is mapped 1:1 to an underlying logical processor (LP). Um VP de host sempre será executado no mesmo LP subjacente – não há nenhuma migração do VPSs da partição raiz.A host VP will always run on the same underlying LP – there is no migration of the root partition's VPs.

  • Por padrão, o LPs em que o host VPSs executado também pode executar o convidado VPSs.By default, the LPs on which host VPs run can also run guest VPs.

  • Um vice-presidente convidado pode ser agendado pelo hipervisor para ser executado em qualquer processador lógico disponível.A guest VP may be scheduled by the hypervisor to run on any available logical processor. Enquanto o Agendador de hipervisor se preocupa em considerar a localidade do cache temporal, a topologia NUMA e muitos outros fatores ao programar um vice-presidente convidado, por fim, o VP pode ser agendado em qualquer host LP.While the hypervisor scheduler takes care to consider temporal cache locality, NUMA topology, and many other factors when scheduling a guest VP, ultimately the VP could be scheduled on any host LP.

A configuração de raiz mínima ou "Minroot"The Minimum Root, or "Minroot" Configuration

As versões anteriores do Hyper-V tinham um limite máximo de arquitetura de 64 VPSs por partição.Early versions of Hyper-V had an architectural maximum limit of 64 VPs per partition. Isso se aplica às partições raiz e de convidado.This applied to both the root and guest partitions. Como sistemas com mais de 64 processadores lógicos apareciam em servidores high-end, o Hyper-V também evoluiu seus limites de escala de host para dar suporte a esses sistemas maiores, em um ponto dando suporte a um host com até 320 LPs.As systems with more than 64 logical processors appeared on high-end servers, Hyper-V also evolved its host scale limits to support these larger systems, at one point supporting a host with up to 320 LPs. No entanto, a interrupção do limite de 64 por partição nesse momento apresentou vários desafios e introduziu complexidades que tornaram o suporte a mais de 64 VPSs por partição, proibitiva.However, breaking the 64 VP per partition limit at that time presented several challenges and introduced complexities that made supporting more than 64 VPs per partition prohibitive. Para resolver isso, o Hyper-V limitou o número de VPSs dadas à partição raiz para 64, mesmo que a máquina subjacente tivesse muito mais processadores lógicos disponíveis.To address this, Hyper-V limited the number of VPs given to the root partition to 64, even if the underlying machine had many more logical processors available. O hipervisor continuará a utilizar todos os LPs disponíveis para a execução de VPSs de convidado, mas, artificialmente, a partição raiz em 64.The hypervisor would continue to utilize all available LPs for running guest VPs, but artificially capped the root partition at 64. Essa configuração se tornou conhecida como a configuração "raiz mínima" ou "minroot".This configuration became known as the "minimum root", or "minroot" configuration. Os testes de desempenho confirmaram que, mesmo em sistemas de grande escala com mais de 64 LPs, a raiz não precisou de mais de 64 VPSs raiz para fornecer suporte suficiente a um grande número de VMs convidadas e VPSs de convidados, na verdade, muito menos que 64 raiz VPSs era geralmente adequado, dependendo do número e do tamanho das VMs convidadas , as cargas de trabalho específicas que estão sendo executadas, etc.Performance testing confirmed that, even on large scale systems with more than 64 LPs, the root did not need more than 64 root VPs to provide sufficient support to a large number of guest VMs and guest VPs – in fact, much less than 64 root VPs was often adequate, depending of course on the number and size of the guest VMs, the specific workloads being run, etc.

Esse conceito de "minroot" continua sendo utilizado hoje.This "minroot" concept continues to be utilized today. Na verdade, mesmo que o Windows Server 2016 Hyper-V tenha aumentado seu limite máximo de suporte arquitetônico para o host LPs a 512 LPs, a partição raiz ainda será limitada a um máximo de 320 LPs.In fact, even as Windows Server 2016 Hyper-V increased its maximum architectural support limit for host LPs to 512 LPs, the root partition will still be limited to a maximum of 320 LPs.

Usando o Minroot para restringir e isolar recursos de computação do hostUsing Minroot to Constrain and Isolate Host Compute Resources

Com o limite padrão alto de 320 LPs no Windows Server 2016 Hyper-V, a configuração do minroot só será utilizada nos maiores sistemas de servidor.With the high default threshold of 320 LPs in Windows Server 2016 Hyper-V, the minroot configuration will only be utilized on the very largest server systems. No entanto, esse recurso pode ser configurado para um limite muito menor pelo administrador de host do Hyper-V e, portanto, utilizado para restringir bastante a quantidade de recursos de CPU do host disponíveis para a partição raiz.However, this capability can be configured to a much lower threshold by the Hyper-V host administrator, and thus leveraged to greatly restrict the amount of host CPU resources available to the root partition. É claro que o número específico de LPs raiz a ser utilizado deve ser escolhido com cuidado para dar suporte às demandas máximas das VMs e cargas de trabalho alocadas para o host.The specific number of root LPs to utilize must of course be chosen carefully to support the maximum demands of the VMs and workloads allocated to the host. No entanto, valores razoáveis para o número de LPs do host podem ser determinados por meio da avaliação cuidadosa e do monitoramento de cargas de trabalho de produção e validados em ambientes de não produção antes da ampla implantação.However, reasonable values for the number of host LPs can be determined through careful assessment and monitoring of production workloads, and validated in non-production environments before broad deployment.

Habilitando e Configurando o MinrootEnabling and Configuring Minroot

A configuração minroot é controlada por meio de entradas BCD do hipervisor.The minroot configuration is controlled via hypervisor BCD entries. Para habilitar o minroot, em um prompt de comando com privilégios de administrador:To enable minroot, from a cmd prompt with administrator privileges:

     bcdedit /set hypervisorrootproc n

Em que n é o número de VPSs raiz.Where n is the number of root VPs.

O sistema deve ser reinicializado e o novo número de processadores raiz continuará durante o tempo de vida da inicialização do sistema operacional.The system must be rebooted, and the new number of root processors will persist for the lifetime of the OS boot. A configuração minroot não pode ser alterada dinamicamente no tempo de execução.The minroot configuration cannot be changed dynamically at runtime.

Se houver vários nós NUMA, cada nó receberá n/NumaNodeCount processadores.If there are multiple NUMA nodes, each node will get n/NumaNodeCount processors.

Observe que, com vários nós NUMA, você deve garantir que a topologia da VM esteja de modo que haja LPs livres suficientes (ou seja, LPs sem o VPSs raiz) em cada nó NUMA para executar o VPSs do nó NUMA da VM correspondente.Note that with multiple NUMA nodes, you must ensure the VM's topology is such that there are enough free LPs (i.e., LPs without root VPs) on each NUMA node to run the corresponding VM's NUMA node VPs.

Verificando a configuração do MinrootVerifying the Minroot Configuration

Você pode verificar a configuração do minroot do host usando o Gerenciador de tarefas, conforme mostrado abaixo.You can verify the host's minroot configuration using Task Manager, as shown below.

Configuração de minroot do host mostrada no Gerenciador de tarefas

Quando Minroot estiver ativo, o Gerenciador de tarefas exibirá o número de processadores lógicos atualmente alocados para o host, além do número total de processadores lógicos no sistema.When Minroot is active, Task Manager will display the number of logical processors currently allotted to the host, in addition to the total number of logical processors in the system.