Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

Parte 1. Sobre a CPU
Parte 2. Sobre Memória

Hoje analisaremos as métricas do subsistema de disco no vSphere. Um problema de armazenamento é o motivo mais comum para uma máquina virtual lenta. Se, no caso de CPU e RAM, a solução de problemas termina no nível do hipervisor, então, se houver problemas com o disco, talvez seja necessário lidar com a rede de dados e o sistema de armazenamento.

Discutirei o tópico usando o exemplo de acesso em bloco a sistemas de armazenamento, embora para acesso a arquivos os contadores sejam aproximadamente os mesmos.

Um pouco de teoria

Ao falar sobre o desempenho do subsistema de disco das máquinas virtuais, as pessoas costumam prestar atenção a três parâmetros inter-relacionados:

  • número de operações de entrada/saída (Operações de Entrada/Saída por Segundo, IOPS);
  • Taxa de transferência;
  • atraso de operações de entrada/saída (Latência).

Número de IOPS geralmente importante para cargas de trabalho aleatórias: acesso a blocos de disco localizados em locais diferentes. Um exemplo de tal carga poderia ser bancos de dados, aplicativos de negócios (ERP, CRM), etc.

Largura de banda importante para cargas sequenciais: acesso a blocos localizados um após o outro. Por exemplo, servidores de arquivos (mas nem sempre) e sistemas de videovigilância podem gerar tal carga.

A taxa de transferência está relacionada ao número de operações de E/S da seguinte forma:

Taxa de transferência = IOPS * Tamanho do bloco, onde Block size é o tamanho do bloco.

O tamanho do bloco é uma característica bastante importante. Versões modernas do ESXi permitem blocos de até 32 KB. Se o bloco for ainda maior, ele será dividido em vários. Nem todos os sistemas de armazenamento podem funcionar eficientemente com blocos tão grandes, portanto, há um parâmetro DiskMaxIOSize nas configurações avançadas do ESXi. Usando-o, você pode reduzir o tamanho máximo do bloco ignorado pelo hipervisor (mais detalhes aqui). Antes de alterar este parâmetro, recomendo que você consulte o fabricante do sistema de armazenamento ou pelo menos teste as alterações em uma bancada de laboratório. 

Um tamanho de bloco grande pode ter um efeito prejudicial no desempenho do armazenamento. Mesmo que o número de IOPS e a taxa de transferência sejam relativamente pequenos, altas latências podem ser observadas com um tamanho de bloco grande. Portanto, preste atenção a este parâmetro.

Latência – o parâmetro de desempenho mais interessante. A latência de E/S de uma máquina virtual consiste em:

  • atrasos dentro do hipervisor (KAVG, Average Kernel MilliSec/Read);
  • atraso fornecido pela rede de dados e sistema de armazenamento (DAVG, Average Driver MilliSec/Command).

A latência total visível no sistema operacional convidado (GAVG, Average Guest MilliSec/Command) é a soma de KAVG e DAVG.

GAVG e DAVG são medidos e KAVG é calculado: GAVG – DAVG.

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento
Fonte

Vamos dar uma olhada mais de perto KAVG. Durante a operação normal, o KAVG deve tender a zero ou pelo menos ser muito menor que o DAVG. O único caso que conheço em que o KAVG é esperado é o limite de IOPS no disco da VM. Nesse caso, ao tentar ultrapassar o limite, o KAVG aumentará.

O componente mais significativo do KAVG é o QAVG – o tempo de fila de processamento dentro do hipervisor. Os restantes componentes do KAVG são insignificantes.

A fila no driver do adaptador de disco e a fila nas luas têm tamanho fixo. Para ambientes altamente carregados, pode ser útil aumentar esse tamanho. é descreve como aumentar as filas no driver do adaptador (ao mesmo tempo, a fila para as luas aumentará). Essa configuração funciona quando apenas uma VM está trabalhando com a lua, o que é raro. Se houver várias VMs na Lua, você também deverá aumentar o parâmetro Disk.SchedNumReqOutstanding (instruções  aqui). Ao aumentar a fila, você diminui QAVG e KAVG respectivamente.

Mas, novamente, primeiro leia a documentação do fornecedor do HBA e teste as alterações em uma bancada de laboratório.

O tamanho da fila para a lua pode ser afetado pela inclusão do mecanismo SIOC (Storage I/O Control). Ele fornece acesso uniforme à Lua de todos os servidores do cluster, alterando dinamicamente a fila da Lua nos servidores. Ou seja, se um dos hosts estiver executando uma VM que requer uma quantidade desproporcional de desempenho (VM vizinha barulhenta), o SIOC reduz o comprimento da fila até a lua neste host (DQLEN). Mais detalhes aqui.

Resolvemos o KAVG, agora um pouco sobre DAVG. Tudo é simples aqui: DAVG é o atraso introduzido pelo ambiente externo (rede de dados e sistema de armazenamento). Todo sistema de armazenamento moderno e não tão moderno possui seus próprios contadores de desempenho. Para analisar problemas com o DAVG, faz sentido examiná-los. Se tudo estiver bem no ESXi e no lado do armazenamento, verifique a rede de dados.

Para evitar problemas de desempenho, escolha a Política de Seleção de Caminho (PSP) correta para o seu sistema de armazenamento. Quase todos os sistemas de armazenamento modernos suportam PSP Round-Robin (com ou sem ALUA, Acesso Asimétrico à Unidade Lógica). Esta política permite usar todos os caminhos disponíveis para o sistema de armazenamento. No caso do ALUA, apenas os caminhos para o controlador dono da lua são usados. Nem todos os sistemas de armazenamento no ESXi possuem regras padrão que definem a política Round-Robin. Se não houver uma regra para o seu sistema de armazenamento, use um plug-in do fabricante do sistema de armazenamento, que criará uma regra correspondente em todos os hosts do cluster, ou crie você mesmo uma regra. Detalhes aqui

Além disso, alguns fabricantes de sistemas de armazenamento recomendam alterar o número de IOPS por caminho do valor padrão de 1000 para 1. Em nossa prática, isso tornou possível “extrair” mais desempenho do sistema de armazenamento e reduzir significativamente o tempo necessário para failover. no caso de falha ou atualização do controlador. Verifique as recomendações do fornecedor e, caso não haja contraindicações, tente alterar este parâmetro. Detalhes aqui.

Contadores básicos de desempenho do subsistema de disco da máquina virtual

Os contadores de desempenho do subsistema de disco no vCenter são coletados nas seções Datastore, Disco, Disco Virtual:

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

Na seção Datastore existem métricas para armazenamentos de disco do vSphere (datastores) nos quais os discos da VM estão localizados. Aqui você encontrará contadores padrão para:

  • IOPS (média de solicitações de leitura/gravação por segundo), 
  • taxa de transferência (taxa de leitura/gravação), 
  • atrasos (leitura/gravação/latência mais alta).

Em princípio, tudo fica claro pelos nomes dos contadores. Deixe-me chamar sua atenção mais uma vez para o fato de que as estatísticas aqui não são para uma VM específica (ou disco de VM), mas estatísticas gerais para todo o armazenamento de dados. Na minha opinião, é mais conveniente olhar essas estatísticas no ESXTOP, pelo menos com base no fato de que o período mínimo de medição é de 2 segundos.

Na seção Disco existem métricas em dispositivos de bloco usados ​​pela VM. Existem contadores para IOPS do tipo soma (o número de operações de entrada/saída durante o período de medição) e vários contadores relacionados ao acesso ao bloco (Comandos abortados, Reinicializações de barramento). Na minha opinião, também é mais conveniente visualizar esta informação no ESXTOP.

Seção Disco virtual – o mais útil do ponto de vista de encontrar problemas de desempenho do subsistema de disco VM. Aqui você pode ver o desempenho de cada disco virtual. São essas informações necessárias para entender se uma determinada máquina virtual está com problemas. Além dos contadores padrão para o número de operações de E/S, volume de leitura/gravação e atrasos, esta seção contém contadores úteis que mostram o tamanho do bloco: Tamanho da solicitação de leitura/gravação.

Na imagem abaixo está um gráfico de desempenho do disco da VM, onde você pode ver o número de IOPS, latência e tamanho do bloco. 

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

Você também poderá visualizar métricas de desempenho de todo o armazenamento de dados se o SIOC estiver ativado. Aqui estão informações básicas sobre latência média e IOPS. Por padrão, essas informações só podem ser visualizadas em tempo real.

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

ESXTOP

ESXTOP possui diversas telas que fornecem informações sobre o subsistema do disco host como um todo, máquinas virtuais individuais e seus discos.

Vamos começar com informações sobre máquinas virtuais. A tela “Disk VM” é acessada com a tecla “v”:

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

DISCO NV é o número de discos VM. Para visualizar as informações de cada disco, pressione “e” e insira o GID da VM de interesse.

O significado dos parâmetros restantes nesta tela fica claro em seus nomes.

Outra tela útil para solução de problemas é Adaptador de disco. Chamado pela tecla “d” (os campos A,B,C,D,E,G estão selecionados na figura abaixo):

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

NPTH – o número de caminhos para as luas que são visíveis neste adaptador. Para obter informações de cada caminho no adaptador, pressione “e” e digite o nome do adaptador:

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

AQLEN – tamanho máximo da fila no adaptador.

Também nesta tela estão os contadores de atraso que falei acima: KAVG/cmd, GAVG/cmd, DAVG/cmd, QAVG/cmd.

A tela de dispositivos de disco, que é acessada pressionando a tecla “u”, fornece informações sobre dispositivos de bloco individuais - luas (os campos A, B, F, G, I estão selecionados na imagem abaixo). Aqui você pode ver o status da fila para as luas.

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

DQLEN – tamanho da fila para um dispositivo de bloco.
ACTV – número de comandos de E/S no kernel ESXi.
QUED – número de comandos de E/S na fila.
%USD – ACTV/DQLEN × 100%.
CARGA – (ACTV + QUED) / DQLEN.

Se %USD estiver alto, você deve considerar aumentar a fila. Quanto mais comandos na fila, maior será o QAVG e, consequentemente, o KAVG.

Você também pode ver na tela do dispositivo de disco se VAAI (vStorage API for Array Integration) está em execução no sistema de armazenamento. Para fazer isso, selecione os campos A e O.

O mecanismo VAAI permite transferir parte do trabalho do hipervisor diretamente para o sistema de armazenamento, por exemplo, zerar, copiar blocos ou bloquear.

Análise de desempenho de VM no VMware vSphere. Parte 3: Armazenamento

Como você pode ver na imagem acima, VAAI funciona neste sistema de armazenamento: as primitivas Zero e ATS são usadas ativamente.

Dicas para otimizar o trabalho com o subsistema de disco no ESXi

  • Preste atenção ao tamanho do bloco.
  • Defina o tamanho ideal da fila no HBA.
  • Não se esqueça de habilitar o SIOC nos datastores.
  • Escolha um PSP de acordo com as recomendações do fabricante do sistema de armazenamento.
  • Certifique-se de que VAAI esteja funcionando.

Artigos úteis sobre o tema:http://www.yellow-bricks.com/2011/06/23/disk-schednumreqoutstanding-the-story/
http://www.yellow-bricks.com/2009/09/29/whats-that-alua-exactly/
http://www.yellow-bricks.com/2019/03/05/dqlen-changes-what-is-going-on/
https://www.codyhosterman.com/2017/02/understanding-vmware-esxi-queuing-and-the-flasharray/
https://www.codyhosterman.com/2018/03/what-is-the-latency-stat-qavg/
https://kb.vmware.com/s/article/1267
https://kb.vmware.com/s/article/1268
https://kb.vmware.com/s/article/1027901
https://kb.vmware.com/s/article/2069356
https://kb.vmware.com/s/article/2053628
https://kb.vmware.com/s/article/1003469
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/vsphere-esxi-vcenter-server-67-performance-best-practices.pdf

Fonte: habr.com

Adicionar um comentário