Efeito do cache no desempenho do disco no Azure

Concluído

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

Estamos examinando especificamente os discos subjacentes e o armazenamento usados para VMs. Quando você estiver olhando para o desempenho, lembre-se de que você também precisa considerar a camada de aplicativo. Por exemplo, se você estiver executando um banco de dados em uma VM, deseja 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 está 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 selecionado (Standard ou Premium) decide a velocidade dos discos. Medimos esse desempenho em operações de E/S por segundo, ou IOPS (pronuncia-se "eye-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. Esta medição é aplicada diretamente ao armazenamento. Por exemplo, se você tiver um disco que pode fazer 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 latência, podem afetar a IOPS.

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

IOPS no Azure

Quando você anexa um disco de armazenamento premium à sua 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 7500 IOPS. Cada tamanho de VM de alta escala também tem um limite de IOPS específico que pode suportar. Por exemplo, uma VM GS5 padrão tem um limite de 80.000 IOPS .

IOPS é uma medição de desempenho de seus 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 é taxa de transferência?

Taxa de transferência é a quantidade de dados que seu aplicativo está enviando para os discos de armazenamento em um intervalo especificado (normalmente por segundo). Se seu aplicativo estiver executando E/S com grandes blocos de dados, ele exigirá alta taxa de transferência.

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

IOPS vs. taxa de transferência

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

O que é latência?

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

A latência coloca um limite no IOPS. Por exemplo, se nosso disco pode lidar com 5000 IOPS, mas cada operação leva 10 ms para processar, então nosso aplicativo é limitado a 500 operações por segundo devido ao tempo de processamento. Este exemplo é uma ilustração simples; Na maioria das vezes, a latência é consideravelmente menor. Em última análise, a latência e a taxa de transferência determinam a rapidez com que seu aplicativo pode processar dados do armazenamento.

O armazenamento premium fornece latências baixas consistentes, e podes obter uma latência ainda melhor quando necessário através de cacheamento .

Teste o desempenho do disco

Você pode ajustar e equilibrar o IOPS, a taxa de transferência e a latência dos discos da VM selecionando o tamanho e o tipo de armazenamento corretos da VM. Normalmente, os tamanhos de VM maiores ou mais caros têm garantias mais altas para IOPS e taxa de transferência máximas. Adicione a essa equação as opções de armazenamento Standard vs. Premium e HDD vs. SSD, e terá vários parâmetros para jogar.

Selecionar a combinação certa envolve entender os requisitos do seu aplicativo. Aplicativos de E/S alta, como servidores de banco de dados ou sistemas de processamento transacional on-line, exigem IOPS mais altas, enquanto aplicativos mais baseados em computação podem sobreviver com requisitos mais baixos. Além disso, os tipos de operações que os aplicativos executam afetam sua taxa de transferência. E/S de alto acesso aleatório tendem a ser mais lentas do que leituras sequenciais longas.

Depois de selecionar sua configuração, você pode usar ferramentas como o Iometer para testar o desempenho do disco em VMs Linux e Windows. Este teste dá-lhe uma noção mais real do tipo de desempenho a esperar. Também pode ajudá-lo a identificar formas de melhorar a utilização do armazenamento da sua aplicação. Por exemplo, uma aplicação que faz E/S monothread provavelmente sofrerá um desempenho de E/S reduzido devido à latência.

Na próxima unidade, analisamos algumas outras coisas que podemos fazer para melhorar o desempenho do disco.