Ativar e configurar a cache de disco da VM do Azure com o portal do Azure

Concluído

Vimos as configurações e propriedades que você pode selecionar para prever o desempenho do disco. Agora, vamos ver maneiras de melhorar isso por meio do cache.

Colocação em cache do disco

Um cache é um componente especializado que armazena dados, normalmente na memória, para que possam ser acessados mais rapidamente. Os dados em um cache geralmente são dados que foram lidos anteriormente ou dados que resultaram de um cálculo anterior. O objetivo é aceder aos dados mais rapidamente do que seria possível se fossem obtidos a partir do disco.

O cache usa armazenamento temporário especializado (e às vezes caro) que tem um desempenho de leitura e gravação mais rápido do que o armazenamento permanente. Como o armazenamento em cache geralmente é limitado, você precisa tomar decisões sobre quais operações de dados se beneficiam mais do cache. Mas mesmo se a cache puder ser disponibilizada amplamente, como no Azure, continua a ser importante conhecer os padrões de carga de trabalho de cada disco, antes de decidir o tipo de colocação em cache a utilizar.

A cache de leitura tenta acelerar a obtenção de dados. Em vez de ler do armazenamento permanente, os dados são lidos de cache mais rápida. As leituras de dados determinam a cache de acordo com as seguintes condições:

  • Os dados foram lidos anteriormente e existem no cache.
  • A cache é suficientemente grande para reter todos os dados.

É importante observar que o cache de leitura ajuda quando há alguma previsibilidade para a fila de leitura, como um conjunto de leituras sequenciais. Para E/S aleatórias, em que os dados que você está acessando estão espalhados pelo armazenamento, o cache é de pouco ou nenhum benefício e pode até reduzir o desempenho do disco.

A cache de escrita tenta acelerar a escrita de dados no armazenamento persistente. Quando um aplicativo usa um cache de gravação, ele pode considerar os dados a serem salvos. Na verdade, os dados são colocados em fila numa cache, à espera para serem escritos no disco. Como pode imaginar, este mecanismo pode ser um possível ponto de falha, por exemplo, quando o sistema encerra antes de os dados em cache serem escritos. Alguns sistemas, como SQL Server, processam a escrita dos dados em cache no armazenamento de disco persistente.

Colocação em cache do disco do Azure

Há dois tipos de colocação em cache do disco que dizem respeito ao armazenamento de discos:

  • Colocação em cache do armazenamento do Azure
  • Colocação em cache de discos de máquina virtual (VM) do Azure

A colocação em cache do armazenamento do Azure presta serviços de cache para armazenamento de Blobs do Azure, Ficheiros do Azure e outro conteúdo no Azure. A configuração destes tipos de cache está fora do âmbito deste módulo.

A colocação em cache de discos de máquina virtual trata da otimização do acesso de leitura e escrita aos ficheiros do disco rígido virtual (VHD) anexos às VMs do Azure. Neste módulo, nos concentramos no cache de disco.

O cache de disco não é suportado para Ultra Disks ou SSD Premium v2, no entanto, eles já se beneficiam de latência mais baixa, o que resolve alguns dos mesmos problemas principais do cache de disco.

Tipos de disco de máquina virtual do Azure

Há três tipos de discos utilizados com as VMs do Azure:

  • Disco do SO: quando cria uma VM do Azure, o Azure anexa automaticamente um VHD ao sistema operativo (SO).

  • Disco temporário: quando cria uma VM do Azure, o Azure também adiciona automaticamente um disco temporário. Este disco é utilizado para dados, como páginas e ficheiros de troca. Os dados neste disco podem ser perdidos durante a manutenção ou uma reimplantação de VM. Não o utilize para armazenar dados permanentes como ficheiros de base de dados ou registos de transação.

  • Discos de dados: um disco de dados é um VHD anexado a uma máquina virtual para armazenar dados de aplicativos ou outros dados que você precisa manter.

Os discos do SO e os discos de dados aproveitam a colocação em cache de discos de VM do Azure. O tamanho da cache para um disco de VM depende do tamanho da instância da VM e do número de discos montados na VM. Você pode habilitar o cache para apenas discos de até 4 TiB.

Opções de cache para VMs do Azure

Há três opções comuns para colocação em cache de discos de VM:

  • Leitura/gravação: cache de write-back. Utilize esta opção apenas se a aplicação processar corretamente a escrita de dados em cache em discos persistentes, quando necessário.
  • Somente leitura: as leituras são feitas a partir do cache.
  • Nenhum: Sem cache. Selecione esta opção para discos só de leitura e escrita intensiva. Os ficheiros de registo são ótimos candidatos, pois têm operações de escrita intensiva.

Nem todas as opções de colocação em cache estão disponíveis para cada tipo de disco. A tabela seguinte mostra as opções de colocação em cache para cada tipo de disco:

Só de leitura Leitura/escrita Nenhuma
Disco do SO sim sim (predefinição) sim
Disco de dados sim (predefinição) sim sim
Disco temporário não não não

Nota

Não é possível alterar as opções de cache de disco para máquinas virtuais das séries L e B.

Considerações de desempenho para colocação em cache de discos de VM

Em que medida podem as definições de cache afetar o desempenho das cargas de trabalho em execução nas VMs do Azure?

Disco do SO

O comportamento padrão de um disco do sistema operacional VM é usar o cache no modo de leitura/gravação. Então, se você tiver aplicativos que armazenam arquivos de dados no disco do sistema operacional e executam muitas operações aleatórias de leitura / gravação para os arquivos de dados. Considere mover esses arquivos para um disco de dados que tenha o cache desativado. Porquê? Bem, se a fila de leitura não contiver leituras sequenciais, o cache terá pouco ou nenhum benefício. A sobrecarga de manter o cache como se os dados fossem sequenciais pode reduzir o desempenho do disco.

Discos de dados

Para aplicações delicadas em matéria de desempenho, deve utilizar discos de dados em vez do disco do SO. Utilizar discos separados permite configurar as definições de cache apropriadas para cada um.

Por exemplo, em VMs do Azure com SQL Server, permitir a colocação em cache só de leitura nos discos de dados (para dados normais e TempDB) pode resultar em melhorias significativas de desempenho. Por outro lado, os ficheiros de registo são bons candidatos para discos de dados sem cache.

Aviso

Alterar a definição de cache de um disco do Azure desanexa e, em seguida, anexa novamente o disco de destino. Se for o disco do sistema operacional, a VM será reiniciada. Pare todas as aplicações/serviços que possam ser afetadas por esta interrupção antes de alterar a definição da cache do disco.

Pode configurar as definições de cache do disco de máquina virtual com qualquer uma das seguintes ferramentas:

  • Portal do Azure
  • CLI do Azure
  • Azure PowerShell
  • Modelos do Resource Manager

Usar o portal do Azure para configurar o cache

Quando aprovisiona uma nova VM com o portal do Azure, não pode alterar a configuração predefinida de colocação em cache do disco do SO de leitura/escrita até que a VM seja implementada.

Quando adiciona um disco de dados a uma VM existente, pode configurar a opção de cache antes de o disco ser implementado na VM.

Em seguida, vamos criar uma VM e alterar as configurações de cache usando o portal do Azure.