Habilitar e configurar o cache de disco de VM do Azure com o portal do Azure

Concluído

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

Cache de disco

Um cache é um componente especializado que armazena dados, normalmente na memória para que eles possam ser acessados mais rapidamente. Os dados em um cache geralmente já foram lidos ou são o resultado de um cálculo anterior. O objetivo é acessar os dados com uma rapidez maior do que quando eles são obtidos do disco.

O cache usa um armazenamento temporário especializado (e, às vezes, caro), que apresenta um desempenho de leitura e gravação mais rápido do que o armazenamento permanente. Como esse armazenamento em cache geralmente é limitado, é necessário decidir quais operações de dados têm mais benefícios com o armazenamento em cache. Mas mesmo quando o cache pode ser amplamente disponibilizado, como no Azure, ainda é importante saber os padrões de carga de trabalho de cada disco antes de decidir qual tipo de cache usar.

O cache de leitura tenta acelerar a recuperação de dados. Em vez de ler do armazenamento permanente, os dados são lidos do cache mais rápido. As leituras de dados ocorrem no cache sob as condições a seguir:

  • Os dados foram lidos anteriormente e existem no cache.
  • O cache é grande o suficiente para conter todos os dados.

É importante observar que o cache de leitura ajuda quando há alguma previsibilidade da fila de leitura, como um conjunto de leituras sequenciais. Para E/S aleatória, em que os dados acessados estão distribuídos em todo o armazenamento, o cache traz pouco ou nenhum benefício e ainda poderá reduzir o desempenho do disco.

O cache de gravação tenta acelerar a gravação dados no armazenamento persistente. Quando um aplicativo usa um cache de gravação, ele pode considerar os dados a serem salvos. Na realidade, os dados são colocados na fila em um cache, aguardando para serem gravados em um disco. Como você pode imaginar, esse mecanismo pode ser um possível ponto de falha, por exemplo, quando um sistema é desligado antes que os dados armazenados em cache sejam lidos. Alguns sistemas, como o SQL Server, tratam por conta própria da gravação de dados armazenados em cache no armazenamento em disco persistente.

Cache de disco do Azure

Há dois tipos de cache de disco relativos ao armazenamento em disco:

  • Cache de armazenamento do Azure
  • Cache de disco de máquina virtual (VM) do Azure

O cache de armazenamento do Azure fornece serviços de cache para o Armazenamento de Blobs do Azure, os Arquivos do Azure e outros tipos de conteúdo no Azure. A configuração desses tipos de cache está além do escopo deste módulo.

O cache de disco de máquina virtual do Azure é sobre como otimizar o acesso de leitura e gravação para os arquivos de disco rígido virtual (VHD) anexados às VMs do Azure. Neste módulo, nos concentramos no cache de disco.

O cache de disco não tem suporte para Discos Ultra ou SSD Premium v2. No entanto, eles já se beneficiam de latência menor, o que resolve alguns dos mesmos problemas principais que o cache de disco.

Tipos de disco de máquina virtual do Azure

Três tipos de discos são usados com máquinas virtuais do Azure:

  • Disco do sistema operacional: quando você cria uma VM do Azure, o Azure anexa automaticamente um VHD para o SO (sistema operacional).

  • Disco temporário: quando você cria uma VM do Azure, o Azure adiciona automaticamente um disco temporário. Esse disco é usado para dados como arquivos de permuta e de página. Os dados nesse disco podem ser perdidos durante a manutenção ou ao reimplantar uma VM. Não use para armazenar dados permanentes, como arquivos de banco de dados ou logs de transações.

  • Discos de dados: um disco de dados é um VHD anexado a uma máquina virtual para armazenar dados de aplicativos ou outros dados que precisam ser mantidos.

Os discos do sistema operacional e os discos de dados aproveitam as vantagens do cache de disco de VM do Azure. O tamanho do cache de um disco de VM depende do tamanho da instância da VM e do número de discos montados na VM. O cache só pode ser habilitado para discos com tamanho de até 4 TiB.

Opções de cache para VMs do Azure

Há três opções comuns para o cache de disco de VM:

  • Leitura/gravação: cache de write-back. Use essa opção somente se o aplicativo manipular corretamente a gravação de dados armazenados em cache em discos persistentes quando necessário.
  • Somente leitura: as leituras são executadas do cache.
  • Nenhum: sem cache. Selecione essa opção para discos somente gravação e de gravação intensa. Os arquivos de log são um bom candidato porque são operações de gravação intensa.

Nem toda opção de cache está disponível para todo tipo de disco. A tabela a seguir mostra as opções de cache para cada tipo de disco:

Somente leitura Leitura/gravação Nenhum
Disco do SO sim sim (padrão) sim
Disco de dados sim (padrão) sim sim
Disco temporário não não não

Observação

As opções de cache de disco não podem ser alteradas para as máquinas virtuais da Série L e da Série B.

Considerações de desempenho do cache de disco de VM do Azure

Então, como suas configurações de cache podem afetar o desempenho das cargas de trabalho em execução em VMs do Azure?

Disco do SO

O comportamento padrão de um disco do sistema operacional da 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 executar muitas operações aleatórias de leitura/gravação nos arquivos de dados. Considere mover esses arquivos para um disco de dados que tenha o cache desativado. Por quê? Se a fila de leitura não contiver leituras sequenciais, o cache trará 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 aplicativos sensíveis ao desempenho, você deve usar discos de dados em vez do disco do sistema operacional. O uso de discos separados permite que você defina as configurações de cache apropriadas para cada disco.

Por exemplo, em VMs do Azure que executam o SQL Server, habilitar o cache Somente leitura nos discos de dados (para dados normais e de TempDB) pode resultar em melhorias significativas de desempenho. Os arquivos de log, por outro lado, são bons candidatos para discos de dados sem cache.

Aviso

A alteração da configuração de cache de um disco do Azure desanexa e anexa novamente o disco de destino. Se o disco do sistema operacional for usado, a VM será reiniciada. Pare todos os aplicativos/serviços que possam ser afetados por essa interrupção antes de alterar a configuração de cache de disco.

Defina as configurações de cache de disco da máquina virtual com uma das seguintes ferramentas:

  • Portal do Azure
  • CLI do Azure
  • Azure PowerShell
  • Modelos do Gerenciador de Recursos

Usar o portal do Azure para configurar o cache

Ao provisionar uma nova VM usando o portal do Azure, você não poderá alterar a configuração de cache padrão do disco do sistema operacional de leitura/gravação enquanto a VM não for implantada.

Ao adicionar um disco de dados a uma VM existente, você poderá configurar a opção de cache antes que o disco seja implantado na VM.

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