Efeito do cache no desempenho de disco no Azure

Concluído

De modo muito parecido com seus computadores locais, o desempenho da máquina virtual muitas vezes pode estar diretamente vinculado à rapidez com que a VM consegue ler e gravar dados. Para entender como melhorar o desempenho, primeiro precisamos entender como o desempenho é medido. Também temos que entender as configurações e escolhas que afetam essa medição.

Estamos analisando especificamente os discos e o armazenamento subjacentes usados para as VMs. Quando você estiver analisando o desempenho, lembre-se de que também precisa considerar a camada de aplicativo. Por exemplo, se você estiver executando um banco de dados em uma VM, o ideal é examinar as configurações de desempenho específicas do banco de dados para garantir que o banco de dados seja otimizado para a VM e o armazenamento no qual você o estiver executando.

Vamos começar definindo alguns termos e as garantias que o Azure faz sobre eles.

Operações de E/S por segundo

O tipo de armazenamento que você selecionar (Standard ou Premium) determina a rapidez dos discos. Nós medimos esse desempenho em IOPS (operações de E/S por segundo) (pronuncia-se "ai-ops").

IOPS é o número de solicitações que um disco pode processar em um segundo. Uma única solicitação é uma operação de leitura ou gravação. Essa medida é aplicada diretamente ao armazenamento. Por exemplo, se você tem um disco que pode executar 5000 IOPS, isso significa que ele é, teoricamente, capaz de processar 5.000 operações de leitura e/ou gravação por segundo.

Observação

Fatores externos, incluindo a latência, podem afetar a IOPS.

A IOPS afeta diretamente o desempenho do aplicativo. Alguns aplicativos, como sites de varejo, precisam de IOPS alta para lidar com todas as solicitações pequenas e aleatórias E/S que devem ser processadas rapidamente para manter o site responsivo.

IOPS no Azure

Quando você anexa um disco do Armazenamento Premium à VM de alta escala, o Azure provisiona um número garantido de IOPS de acordo com a especificação do disco. Por exemplo, um disco P50 provisiona 7.500 IOPS. Cada tamanho de VM de alta escala também tem um limite específico de IOPS que ela pode manter. Por exemplo, uma VM GS5 Standard tem um limite de 80 mil IOPS.

IOPS é uma medida de desempenho dos discos; no entanto, é um limite teórico. Dois outros fatores podem afetar o desempenho real do aplicativo: taxa de transferência e latência.

O que é a produtividade?

A taxa de transferência é a quantidade de dados que o aplicativo envia aos discos de armazenamento em um intervalo especificado (geralmente, por segundo). Se o aplicativo estiver executando E/S com blocos grandes de dados, ele exigirá alta taxa de transferência.

O Azure provisiona taxa de transferência em discos de armazenamento premium com base na especificação desses discos. Por exemplo, um disco P50 provisiona uma taxa de transferência de disco de 250 MB por segundo. Cada tamanho de VM de alta escala também tem um limite de taxa de transferência específico que ela pode manter. Por exemplo, a VM GS5 Standard tem uma taxa de transferência máxima de 2.000 MB por segundo.

IOPS vs. taxa de transferência

A taxa de transferência e a IOPS têm uma relação direta; a alteração de uma tem um efeito direto na outra. Para obter um limite teórico de produtividade, você pode usar a fórmula: IOPS x I/O size = throughput. É importante considerar esses dois valores ao planejar seu aplicativo.

O que é a latência?

Ler e gravar dados leva tempo. Latência é o tempo que o aplicativo leva para enviar uma solicitação para o disco e obter uma resposta. Essencialmente, a latência nos informa quanto tempo demora para processar uma ler ou gravar uma única solicitação de E/S.

A latência impõe um limite a IOPS. Por exemplo, se o disco puder lidar com cinco mil IOPS, mas cada operação levar 10 ms para ser processada, nosso aplicativo será limitado a 500 operações por segundo devido ao tempo de processamento. Este exemplo é uma ilustração simples; a maior parte da latência de tempo é consideravelmente menor. Por fim, a latência e a taxa de transferência determina por quanto tempo o aplicativo poderá processar dados do armazenamento.

O armazenamento Premium fornece latências baixas de modo consistente e você pode obter uma latência ainda melhor quando necessário por meio de cache.

Testar o desempenho do disco

Você pode ajustar e balancear o IOPS, a taxa de transferência e a latência dos discos da VM selecionando o tipo correto de armazenamento e tamanho da VM. Normalmente, tamanhos de VM maiores ou mais caros têm garantias maiores para IOPS e taxa de transferência máximas. Adicione nessa equação armazenamento Standard versus Premium e opções de HD vs. SSD e terá vários parâmetros para experimentar.

A seleção da combinação certa envolve a compreensão dos requisitos do aplicativo. Aplicativos de alta E/S, como servidores de banco de dados ou sistemas de processamento transacional online, exigem IOPS mais alta, ao passo que aplicativos com uma base mais computacional podem ter requisitos menores. Além disso, os tipos de operações que os aplicativos executam afetam a taxa de transferência. Alta E/S de acesso aleatório tende a ser mais lenta do que leituras sequenciais longas.

Depois de selecionar sua configuração, você poderá usar ferramentas como o Iometer para testar o desempenho do disco em VMs do Linux e Windows. O teste lhe dá uma ideia mais realista do tipo de desempenho a esperar. Isso também pode ajudar a identificar maneiras de melhorar o uso do aplicativo de armazenamento. Por exemplo, um aplicativo que realiza uma única E/S em thread provavelmente sofrerá uma redução de desempenho de E/S devido à latência.

Na próxima unidade, vamos examinar algumas outras medidas que podemos tomar para melhorar o desempenho de disco.