Parte 1. Sobre a CPUParte 2. Sobre a memóriaHoje, analisaremos as métricas do subsistema de disco no vSphere. O problema com o armazenamento é o motivo mais comum para uma máquina virtual lenta. Se, nos casos com CPU e RAM, a solução de problemas terminar no nível do hipervisor, com problemas no disco, talvez seja necessário lidar com a rede de dados e os sistemas de armazenamento.
Analisarei o tópico usando o exemplo de acesso de bloco ao armazenamento, embora com acesso a arquivos os contadores sejam praticamente os mesmos.
Pouco de teoria
Ao falar sobre o desempenho do subsistema de disco de máquinas virtuais, geralmente preste atenção a três parâmetros relacionados:
- número de operações de entrada / saída (operações de entrada / saída por segundo, IOPS);
- largura de banda (taxa de transferência);
- latência das operações de entrada / saída (latência).
O número de IOPS geralmente
é importante para cargas de trabalho aleatórias: acesso a blocos no disco localizados em locais diferentes. Bancos de dados, aplicativos de negócios (ERP, CRM) etc. podem servir como um exemplo dessa carga.
A taxa de transferência é importante para cargas seqüenciais: acesso a blocos localizados um após o outro. Por exemplo, servidores de arquivos (mas nem sempre) e sistemas de vigilância por vídeo podem gerar essa carga.
A taxa de transferência está relacionada ao número de operações de E / S, da seguinte maneira:
Rendimento = IOPS * Tamanho do bloco , em que tamanho do bloco é o tamanho do bloco.
O tamanho do bloco é um recurso muito importante. As versões modernas do ESXi permitem blocos de até 32.767 KB de tamanho. Se o bloco for ainda maior, ele será dividido em vários. Nem todos os sistemas de armazenamento podem funcionar efetivamente com blocos grandes, portanto, Configurações avançadas O ESXi possui o parâmetro DiskMaxIOSize. Utilizando-o, você pode reduzir o tamanho máximo de um bloco ignorado pelo hypervisor (mais detalhes
aqui ). Eu recomendo que você consulte o fabricante dos sistemas de armazenamento antes de alterar esse parâmetro ou, pelo menos, teste as alterações na bancada do laboratório.
Tamanhos grandes de blocos podem afetar adversamente o desempenho do armazenamento. Mesmo que o número de IOPS e a taxa de transferência sejam relativamente pequenos, latências altas podem ocorrer com um tamanho de bloco grande. Portanto, preste atenção neste parâmetro.
Latência é o parâmetro de desempenho mais interessante. A latência das operações de E / S para uma máquina virtual é a soma de:
- atrasos no hypervisor (KAVG, Average Kernel MilliSec / Read);
- latência fornecida pela rede e armazenamento de dados (DAVG, Average Driver MilliSec / Command).
O atraso total visível no sistema operacional convidado (GAVG, MilliSec médio de hóspedes / comando) é a soma do KAVG e DAVG.
GAVG e DAVG são medidos, e KAVG é calculado: GAVG - DAVG.
FonteVamos nos debruçar sobre
KAVG . Em operação normal, o KAVG deve tender a zero, ou pelo menos ser muito menor que o DAVG. O único caso que conheço quando o KAVG deve estar alto é o limite de IOPS no disco da VM. Nesse caso, ao tentar exceder o limite, o KAVG aumentará.
O componente mais significativo do KAVG é o QAVG - o tempo na fila para processamento dentro do hypervisor. Os demais componentes do KAVG são desprezíveis.
A fila no driver do adaptador de disco e a fila da lua têm um tamanho fixo. Para ambientes muito carregados, esse tamanho pode ser útil para aumentar.
Ele descreve como aumentar a fila no driver do adaptador (ao mesmo tempo, a fila para as luas aumentará). Essa configuração funciona quando apenas uma VM trabalha 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 o QAVG e o KAVG, respectivamente.
Mas, novamente, primeiro leia a documentação do fornecedor do HBA e teste as alterações na bancada do 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 no cluster, alterando dinamicamente a fila para a lua nos servidores. Ou seja, se uma VM é executada em um host que requer uma quantidade desproporcional de desempenho (VM vizinha barulhenta), o SIOC reduz o comprimento da fila para a lua nesse host (DQLEN). Mais detalhes
aqui .
KAVG resolvido, agora um pouco sobre
DAVG . Tudo é simples aqui: o DAVG é o atraso introduzido pelo ambiente externo (rede e armazenamento de dados). Qualquer sistema de armazenamento moderno e nem tanto possui seus próprios contadores de desempenho. Para analisar problemas com o DAVG, faz sentido analisá-los. Se tudo estiver bem no ESXi e no lado do armazenamento, verifique a rede de dados.
Para evitar problemas de desempenho, escolha a PSP (política de seleção de caminho) correta para o seu armazenamento. Quase todos os sistemas de armazenamento modernos oferecem suporte ao PSP Round-Robin (com ou sem ALUA, acesso à unidade lógica assimétrica). Esta política permite que você use todos os caminhos disponíveis para armazenamento. No caso do ALUA, apenas os caminhos para o controlador que possui a lua são usados. Nem todos os sistemas de armazenamento no ESXi possuem regras padrão que estabelecem a política Round-Robin. Se não houver regra para o seu sistema de armazenamento, use o plug-in do fabricante do armazenamento que criará a regra correspondente em todos os hosts no cluster ou crie você mesmo a regra. Detalhes
aqui .
Além disso, alguns fornecedores de armazenamento recomendam alterar o número de IOPS por caminho do valor padrão de 1000 para 1. Em nossa prática, isso nos permitiu "extrair" mais desempenho do armazenamento e reduzir significativamente o tempo necessário para failover no caso de uma falha ou atualização do controlador. Verifique as recomendações do fornecedor e, se não houver contra-indicações, tente alterar este parâmetro. Detalhes
aqui .
Contadores de desempenho básico do subsistema de disco de uma máquina virtual
Os contadores de desempenho do subsistema de disco no vCenter são coletados nas seções Armazenamento de dados, disco e disco virtual:

A seção
Datastore contém 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 (pedidos médios de leitura / gravação por segundo),
- largura de banda (taxa de leitura / gravação),
- atrasos (leitura / gravação / maior latência).
Dos nomes dos contadores, em princípio, tudo está claro. Mais uma vez, chamarei a atenção para o fato de que aqui as estatísticas não são para uma VM específica (ou disco da VM), mas gerais para todo o armazenamento de dados. Na minha opinião, é mais conveniente examinar essas estatísticas no ESXTOP, pelo menos com base no fato de que o período mínimo de medição é de 2 segundos.
A seção
Disco contém métricas para os dispositivos de bloco usados pela VM. Existem contadores IOPS do tipo de soma (o número de operações de E / S por período de medição) e vários contadores relacionados ao acesso ao bloco (comandos abortados, redefinições de barramento). Na minha opinião, essa informação também é mais conveniente para assistir no ESXTOP.
A seção
Disco virtual é a mais útil em termos de solução de problemas de desempenho do subsistema de disco da VM. Aqui você pode ver o desempenho de cada disco virtual. Essas informações são necessárias para entender se uma determinada máquina virtual tem um problema. Além dos contadores padrão para o número de operações de entrada / saída, 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 figura abaixo, um gráfico do desempenho do disco da VM, onde você pode ver o número de IOPS, latência e tamanho do bloco.

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

ESXTOP
O ESXTOP possui várias telas que exibem informações sobre o subsistema de 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 pela tecla "v":
NVDISK é o número de discos da VM. Para visualizar informações em cada disco, pressione “e” e digite o GID da VM em que você está interessado.
O significado dos parâmetros restantes nesta tela é claro em seus nomes.
Outra tela útil para solução de problemas é o adaptador de disco. É chamado pela tecla “d” (na figura abaixo, os campos A, B, C, D, E, G são selecionados):
NPTH é o número de caminhos da
lua que são visíveis neste adaptador. Para obter informações sobre cada caminho no adaptador, pressione “e” e digite o nome do adaptador:
AQLEN - tamanho máximo da fila no adaptador.
Também nesta tela estão os contadores de atraso, sobre os quais falei acima:
KAVG / cmd, GAVG / cmd, DAVG / cmd, QAVG / cmd .
A tela do dispositivo de disco, chamada pela tecla “u”, exibe informações sobre dispositivos de bloco individuais - luas (na figura abaixo, os campos A, B, F, G, I são selecionados). Aqui você pode ver o status da fila para as luas.
DQLEN - tamanho da fila para um dispositivo de bloco.
ACTV é o número de comandos de E / S no núcleo do ESXi.
QUED - o número de comandos de E / S na fila.
% USD - ACTV / DQLEN × 100%.
CARGA - (ACTV + QUED) / DQLEN.
Se% USD for alto, considere expandir a programação. Quanto mais equipes na fila, maior o QAVG e, consequentemente, o KAVG.
Você também pode ver na tela do dispositivo de disco se o VAAI (vStorage API for Array Integration) está sendo executado no armazenamento. Para fazer isso, selecione os campos A e O.
O mecanismo VAAI permite transferir parte do trabalho do hypervisor diretamente para o sistema de armazenamento, por exemplo, zerar, copiar blocos ou bloquear.

Como você pode ver na figura acima, o VAAI funciona neste sistema de armazenamento: Primitivas zero e ATS são ativamente usadas.
Dicas de otimização de disco do ESXi
- Preste atenção ao tamanho do bloco.
- Defina o tamanho ideal da fila no HBA.
- Lembre-se de ativar o SIOC nos datastores.
- Escolha seu PSP de acordo com as recomendações do fabricante.
- Verifique se o VAAI está funcionando.
Artigos relacionados úteis: