As seguintes considerações se aplicam para avaliação de performance de processador num sistema operacional guest instalado numa máquina virtual Hyper-V:
• Processadores de sistema operacional guest não possuem afinidade com processadores físicos: O hypervisor determina como os recursos físicos são usados. No caso de utilização do processador, o hypervisor agenda o tempo do processador guest para o processador físico na forma de threads.
Isto significa que a carga do processador de máquinas virtuais estende-se pelos processadores do computador físico. Além disso, máquinas virtuais não podem exceder a utilização do processador do número configurado de processadores lógicos. Por exemplo, se uma única máquina virtual for configurada para rodar em dois processadores num computador físico com oito processadores/cores, então a máquina virtual não poderá exceder a capacidade de processador do número de processadores lógicos configurados (neste caso, dois processadores).
• Medir a utilização de processador do sistema operacional guest: Tradicionalmente a performance do processador pode ser medida usando o contador monitor de performance “\Processor(*)\% Processor Time”. Este não é um contador preciso para avaliar a utilização do processador de um sistema operacional guest, porque o Hyper-V mede e relata este valor relativo ao número de processadores alocados para a máquina virtual.
Se mais processadores forem alocados para executar máquinas virtuais do que a quantidade presente no computador físico, o valor retornado para cada sistema operacional guest para o contador monitor de performance “\Processor(*)\% Processor Time” será mais baixo, mesmo se, na verdade, a utilização do processador for um gargalho.
Isto ocorre porque o processador virtual utiliza o processador físico de um jeito round-robin. Cada processador virtual vai tentar alocar para si mesmo um compartilhamento de todos os recursos do sistema, então em um sistema com 4 processadores, cada processador virtual vai tentar por padrão utilizar 25 por cento dos recursos do sistema. Se oito processadores virtuais forem alocados, então isso significa que coletivamente os processadores virtuais vão tentar utilizar 200 por cento da capacidade da CPU do servidor.
Neste caso, cada processador virtual vai reportar uma baixa utilização conforme medida pelo contador monitor de performance “\Processor(*)\% Processor Time” (relativo ao nível que ele espera) e o excessivo contexto de troca entre os processadores virtuais vai resultar em pobre performance para cada máquina virtual.
Neste cenário, considere reduzir o número de processadores virtuais alocados para máquinas virtuais Hyper-V no sistema operacional host.Hyper-V fornece objetos de performance hypervisor para monitorar a performance de ambos lógicos e processadores virtuais. Um processador lógico correlaciona-se diretamente ao número de processadores ou núcleos que estão instalados no computador físico.
Por exemplo, dois processadores quad instalados no computador físico correlacionaria a oito processadores lógicos. Processadores virtuais são o que as máquinas virtuais usam realmente, e toda execução nas partições raiz ou filha ocorrem nos processadores virtuais.
Para medir precisamente a utilização do processador de um sistema operacional guest, use o contador monitor de performance “\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time” no sistema operacional host Hyper-V. Use os seguintes limites (thresholds) para avaliar a utilização do processador do sistema operacional guest baseado neste contador monitor de performance:
• Menos do que 60 por cento consumidos = Saudável (Healthy).
• 60 – 89 por cento consumidos = Monitore ou Alerta (Monitor/Caution)
• 90 – 100 por cento consumidos = Crítico (Critical), a performance será adversamente afetada.
Para resolução de problemas de performance de processador do sistema operacional guest num ambiente Hyper-V, o melhor buscar por um equilíbrio entre os valores reportados pelo sistema operacional host para “\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time” (LPTR) e “\Hyper-V Hypervisor Virtual Processor(_Total)\% Total Run Time” (VPTR).
Se LPTR estiver alto e VPTR estiver baixo, então verifique que não há mais processadores alocados para máquinas virtuais do que fisicamente disponível no computador físico. Use os contadores “\Hyper-V Hypervisor Virtual Processor(*)\%Guest Run Time” para determinar quais processadores virtuais processadores virtuais estão consumindo CPU, e realoque os processadores virtuais das máquinas virtuais conforme apropriado para configurar o mapeamento um-para-um dos processadores virtuais para processadores lógicos.
Para mais informações sobre configuração de mapeamento um-para-um, leia a seção “Otimizando a Performance do Processador” em Otimizando a Performance no Hyper-V. Se VPTR estiver alto e LPTR estiver baixo, então considere a alocação de processadores adicionais para as máquinas virtuais se tiver processadores lógicos disponíveis e se processadores adicionais forem suportados pelo sistema operacional guest.
No caso onde o VPTR estiver alto, LPTR estiver baixo, haverá processadores lógicos disponíveis para alocar, mas processadores adicionais não serão suportados pelo sistema operacional guest, então considere escalar adicionando máquinas virtuais para o computador físico e alocar processadores disponíveis para estas máquinas virtuais. No caso onde ambos VPTR e LPTR estiverem altos, a configuração está empurrando os limites do computador físico, e você deve considerar escalar adicionando outro computador físico e máquinas virtuais adicionais Hyper-V para este ambiente.
• Medir a utilização geral do processador do ambiente Hyper-V usando contadores monitores de performance: Para o propósito de medir a utilização do processador, o sistema operacional host é visualizado logicamente como outro sistema operacional guest. Então, o contador monitor de performance “\Processor(*)\% Processor Time” mede somente a utilização do processador do sistema operacional host. Para medir a performance total de utilização do processador físico do sistema operacional host e todos dos sistemas operacionais guest, use o contador monitor de performance “\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time”.
Este contador mede a percentagem total de tempo gasto pelo processador executando ambos os sistemas operacional host e todos os sistemas operacionais guest. Use os seguintes limites (thresholds) para avaliar a performance geral de utilização do processador do ambiente Hyper-V utilizando o contador monitor de performance “\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time”:
• Menos do que 60 por cento consumidos = Saudável (Healthy)
• 60 – 89 por cento consumidos = Monitore ou Alerta (Monitor/Caution)
• 90 – 100 por cento consumidos = Crítico (Critical), a performance será adversamente afetada.
Para mais informações sobre a utilização do processador, reveja os seguintes recursos:
• “How To: Identify Functions causing a High User-mode CPU Bottleneck for Server Applications in a Production Environment” no link: http://go.microsoft.com/fwlink/?LinkID=107047
• “Chapter 15 — Measuring .NET Application Performance” no link: http://go.microsoft.com/fwlink/?LinkId=121073
29 de setembro de 2010
© 2009 - InfoChoice - Todos os direitos reservados
Marconi Fábio Vieira, PMP, MVP in Project
Principal Advocate/Chapter Leader