Efeitos da colocação em cache no desempenho dos discos 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 por definir alguns termos e as garantias que o Azure lhes dá.

Operações de E/S por segundo

O tipo de armazenamento selecionado (Standard ou Premium) decide a velocidade dos discos. Medimos este desempenho em operações de E/S por segundo ou IOPS.

IOPS é o número de solicitações que um disco pode processar em um segundo. Um pedido único é uma operação de leitura ou escrita. Esta medida é 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.

Nota

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

IOPS afeta diretamente o desempenho do seu aplicativo. Algumas aplicações, tais como sites de venda a retalho, precisam de um IOPS elevado para processar todos os pedidos de E/S pequenos e aleatórios que têm de ser processados rapidamente para manter o site reativo.

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 aprovisiona 7500 IOPS. Cada tamanho de VM de grande escala tem também um limite de IOPS específico que pode sustentar. Por exemplo, uma VM Standard GS5 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 é o débito?

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 a aplicação estiver a efetuar E/S com grandes blocos de dados, exige um débito elevado.

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 aprovisiona um débito de disco de 250 MB por segundo. Cada tamanho de VM de grande escala tem também um limite de débito específico que pode sustentar. Por exemplo, uma VM Standard GS5 tem um débito máximo de 2000 MB por segundo.

IOPS vs. débito

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 ambos os valores quando planear a sua aplicação.

O que é a latência?

Ler e escrever dados demora 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 informa-nos do tempo que demora a processar um pedido único de E/S de leitura ou escrita.

A latência coloca um limite sobre o 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 você pode obter latência ainda melhor quando necessário por meio do cache.

Teste o desempenho do disco

Pode ajustar e equilibrar o IOPS, o débito e a latência dos discos da VM ao selecionar o tipo de armazenamento e o tamanho de VM adequados. 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. Uma E/S de acesso aleatório elevada tende a ser mais lenta do que leituras sequenciais longas.

Depois de selecionar a configuração, pode utilizar ferramentas como o Iometer para testar o desempenho dos discos em VMs do Linux e do Windows. Este teste dá-lhe uma noção mais real do tipo de desempenho a esperar. Também pode ajudar a identificar formas de melhorar a utilização de armazenamento por parte da sua aplicação. Por exemplo, é provável que uma aplicação com uma E/S única com threads tenha 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.