Análise de Performance Vmware – Parte 2

Análise de Performance Vmware – Parte 2

Continuando a série sobre análise de performance em ambientes Vmware, nesta postagem o foco será o uso da ferramenta ESXTOP na visão CPU. Se você não teve a oportunidade de ler a primeira parte, você pode acessar clicando aqui, ou no link no final desta postagem.

Primeiramente após o acesso ao host ESXi via SSH, temos que invocar o ESXTOP, através do comando esxtop, por padrão a visão CPU (Figura 1) será carregada. É possível acessar a visão CPU a qualquer momento pressionando a tecla “c”.

Figura 1: esxtop visão CPU.

Temos muitas informações e diversos campos, nesta postagem iremos identificar os principais e de fato uteis para identificar os problemas mais comuns de performance, vamos inicialmente entender as informações  do cabeçalho (Figura 2).

Figura 2: Cabeçalho esxtop, visão CPU.

A primeira linha do cabeçalho contém o horário local (UTC), o “uptime” do host ESXi, na sequencia a quantidade de “worlds”, número de máquinas virtuais em execução, quantidade total de vCPUs e uma média de consumo de CPU (CPU load average). Vamos esclarecer alguns pontos, o primeiro que você deve estar se perguntando é o que é “World”, na prática é o nome usado para representar cada processo em execução no ESXi, em uma analogia com outros sistemas operacionais seria o equivalente a um processo ou uma “thread”. Outro ponto que necessita de esclarecimentos é o “CPU load average” onde temos três valores que representam o consumo em momentos distintos, na ordem o último minuto, cinco minutos e finalmente 15 minutos, outro detalhe aqui é que 1.00 significa 100%, logo na imagem onde temos 0.28 significa 28%.

Na segunda e terceira linha temos as informações PCPU USED (%) e PCPU UTIL (%), para cada core teremos um valor que representa o consumo em percentual, na Figura 2, temos 4 valores, ou seja o host possui um único processador com quatro núcleos, teríamos a mesma exibição se tivéssemos um host com dois processadores de dois núcleos. Na frente dos valores temos o consumo médio (AVG). O ponto intrigante são os valores distintos para cada linha sendo que ambas representam o consumo da CPU física (Physical CPU). Uma explicação simplificada: PCPU USED representa o trabalho efetivo da CPU enquanto PCPU UTIL é afetado por variáveis como “Hyper-Thread” e configurações de economia de energia (“Power Management”) que permitem o processador executar alguns ciclos com o clock reduzido.

Agora vamos dedicar atenção à parte divertida, os indicadores para cada “world” ou grupo de “worlds”, primeiro vamos selecionar apenas as máquinas virtuais, para isso basta pressionar a tecla “V” (em maiúsculas), que teremos apenas as máquinas virtuais.

Em seguida vamos reduzir a quantidade de campos exibidos, para isso pressionaremos a tecla “f”,  seremos direcionados a tela de seleção de campos (Figura 3) e pressionando as teclas “A” e “B” removeremos os dois campos inicias (ID e GID), em seguida podemos pressionar a tecla de espaço e retornar a visão CPU, agora deveremos ter uma tela semelhante a da Figura 4. Ainda teremos muitos campos, então vou dedicar atenção aos que considero importantes em uma avaliação de performance.

Figura 3: esxtop, selecionando os campos a serem exibidos.
Figura 4: esxtop, exibindo apenas os campos selecionados e apenas máquinas virtuais.

O campo NAME representa o nome da VM, o campo NWLD representa o número de “worlds”, cada VM é um grupo de “worlds”, logo uma máquina com duas vCPU terá no mínimo dois “worlds” sendo um para cada vCPU (na prática temos um número maior, pois a placa de vídeo, a console e outros dispositivos utilizam um “world” cada).

%USED, representa o consumo de CPU e pode exceder 100%, imagine uma VM com quatro vCPU executando a 100%, teremos uma valor igual ou superior a 400%. Valores muito altos aqui indicam que algo não está indo bem com o Sistema Operacional da VM e necessita de investigação mais detalhada.

%SYS, representa o tempo gasto com “worlds” do sistema (IO, interrupções, etc.), quanto menor melhor, valores muito altos indicam alta demanda de IO de uma maneira geral. Valores superiores a 10% necessitam de investigação.

%VMWAIT, representa o percentual de tempo esperando por recursos providos pelo VMKernel (por exemplo a espera por dispositivos bloqueados por outros “worlds”). Incluem no cálculo os valores provenientes do campo %SWPWT. Valores altos podem indicar um problema no Storage adjacente ou algum dispositivo conectado a VM (dispositivos USB, portas seriais, etc).

%RDY, representa o percentual de tempo em que a VM estava pronta para executar (READY), mas esperou para ser agendada (scheduled) em um processador físico. Valores superiores a 10% podem ser decorrentes de uma configuração com um número muito elevado de vCPUs ou alguma outra VM no mesmo host com um número elevado de vCPUs que está consumindo os recursos da CPU física. É recomendável avaliar se a máquina não está com um limite de CPU configurado (%MLMTD).

%CSTP, representa o percentual de tempo em que a VM necessitou aguardar para executar uma instrução SMP (Symmetric Multiprocessor) e não havia recursos disponíveis. Valores acima de 3% devem ser investigados, a causa mais comum de problemas aqui é o número elevado de vCPUs (VM superdimensionada).

%MLMTD, representa o percentual de tempo em que a VM estava pronta para executar, mas não foi agendada no processador devido uma configuração de limitação de CPU. Idealmente deve ser 0%, se apresentar qualquer valor superior a 0% indica que uma configuração de limitação de CPU foi configurada na VM em questão.

%SWPWT, representa o percentual de tempo em que a VM aguardou páginas de memória serem carregadas do disco. O valor ideal é 0%, valores altos indicam que o host está sofrendo contenção de memória.

Nesta postagem tentei ser o mais sucinto e prático possível, veja que não analisei todos os campos, até mesmo pelo fato de alguns campos serem decorrentes da soma de outros e em outros casos as informações não são relevantes para uma análise rápida e assertiva. Na próxima parte iremos analisar a visão de memória. Se não teve a oportunidade de ler a primeira parte, segue o link abaixo:

ANÁLISE DE PERFORMANCE VMWARE – PARTE 1

Consultor veterano na área de Tecnologia da Informação, com passagem em grandes empresas, graduado em Ciência da Computação com especialização em microeletrônica e gestão de projetos, detentor de diversas certificações de mercado (Microsoft, Cisco, Brocade, Vmware, etc.).

3 thoughts on “Análise de Performance Vmware – Parte 2

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *