Partilhar via


Dimensionar uma instância do Azure Cache for Redis

Importante

O Cache do Azure para Redis anunciou seu cronograma de desativação para todas as SKUs. Recomendamos mover as suas instâncias existentes do Azure Cache para Redis para Azure Managed Redis o mais rápido possível.

Para mais detalhes sobre a aposentadoria:

O Cache Redis do Azure tem diferentes ofertas de camada que fornecem flexibilidade na escolha do tamanho e dos recursos do cache. Por meio do dimensionamento, você pode alterar o tamanho, a camada e o número de nós depois de criar uma instância de cache para corresponder às necessidades do seu aplicativo. Este artigo mostra-lhe como dimensionar a sua cache utilizando o portal do Azure, além de ferramentas como o Azure PowerShell e a CLI do Azure.

Tipos de dimensionamento

Há fundamentalmente duas maneiras de dimensionar um Cache do Azure para Instância Redis:

  • A expansão aumenta o tamanho da máquina virtual (VM) que executa o servidor Redis, adicionando mais memória, CPUs virtuais (vCPUs) e largura de banda de rede. A expansão também é chamada escala vertical. O oposto de aumentar é diminuir.

  • O dimensionamento horizontal divide a instância de cache em mais nós do mesmo tamanho, aumentando a memória, as vCPUs e a largura de banda da rede através da paralelização. A expansão também é conhecida como escala horizontal ou sharding. O oposto de dimensionar para fora é reduzir a escala. Na comunidade Redis, o dimensionamento horizontal é frequentemente chamado clustering.

Âmbito da disponibilidade

Escalão de serviço Básico e Standard Premium Enterprise e Enterprise Flash
Expandir Sim Sim Sim
Reduzir Verticalmente Sim Sim Não
Escalar Horizontalmente Não Sim Sim
Escala em Não Sim Não

Quando dimensionar

Você pode usar os recursos de monitoramento do Cache Redis do Azure para monitorar a integridade e o desempenho do cache. Utilize estas informações para determinar quando dimensionar a cache.

Pode monitorizar as seguintes métricas para determinar se o dimensionamento é necessário.

  • Carga do servidor Redis
    • Alta carga do servidor Redis significa que o servidor é incapaz de acompanhar o ritmo das solicitações de todos os clientes. Como um servidor Redis é um processo de thread único, normalmente é mais útil escalar horizontalmente em vez de escalar verticalmente. A expansão habilitando o clustering ajuda a distribuir funções de sobrecarga em vários processos Redis. A expansão também ajuda a distribuir a criptografia e a descriptografia TLS, bem como a conexão e desconexão, acelerando as instâncias de cache que usam TLS.
    • A expansão ainda pode ser útil para reduzir a carga do servidor, porque as tarefas em segundo plano podem aproveitar mais vCPUs e liberar o thread para o processo principal do servidor Redis.
    • As camadas Enterprise e Enterprise Flash usam Redis Enterprise em vez de Redis de código aberto. Uma das vantagens dessas camadas é que o processo do servidor Redis pode tirar proveito de várias vCPUs. Com várias vCPUs, tanto o dimensionamento vertical como o horizontal nestas camadas podem ser úteis para reduzir a carga do servidor.
  • Utilização de Memória
    • A elevada utilização da memória indica que o tamanho dos dados é demasiado grande para o tamanho atual da cache. Considere dimensionar para um tamanho de cache com maior memória. Tanto o aumento da capacidade quanto o aumento horizontal são eficazes aqui.
  • Ligações de cliente
    • Cada tamanho de cache tem um limite para o número de ligações de clientes que pode suportar. Se as conexões do cliente estiverem próximas do limite para o tamanho do cache, considere expandir para uma camada maior. A expansão não aumenta o número de conexões de cliente suportadas.
    • Para obter mais informações sobre limites de conexão por tamanho de cache, consulte Preços do Cache do Azure para Redis.
  • Largura de Banda de Rede
    • Se o servidor do Redis exceder a largura de banda disponível, os pedidos dos clientes podem expirar porque o servidor não consegue transmitir os dados ao cliente com rapidez suficiente. Para ver a utilização da largura de banda do lado do servidor, verifique as métricas “Leitura da Cache” e “Escrita da Cache”. Se o servidor Redis estiver excedendo a largura de banda de rede disponível, você deve considerar a expansão ou dimensionamento para um tamanho de cache maior com maior largura de banda de rede.
    • Para caches do nível Enterprise usando a política de cluster Enterprise, o dimensionamento não aumenta a largura de banda da rede.
    • Para obter mais informações sobre a largura de banda disponível na rede por tamanho de cache, consulte Perguntas frequentes sobre planejamento do Cache do Azure para Redis.
  • Varreduras internas do Defender
    • Nos caches C0 e C1 Standard, enquanto a verificação interna do Defender está a ser executada nas VMs, pode-se ver pequenos picos de carga no servidor não causados por um aumento nas solicitações de cache. As solicitações apresentam uma latência mais alta enquanto as verificações internas do Defender são executadas nestas camadas várias vezes por dia. Os caches nas camadas C0 e C1 têm apenas um núcleo para multitarefa, dividindo o trabalho de atender às solicitações internas de varredura do Defender e do Redis. Você pode reduzir o efeito dimensionando para uma oferta de camada mais alta com vários núcleos de CPU, como C2.
    • O aumento do tamanho do cache nas camadas mais altas ajuda a resolver quaisquer problemas de latência. Além disso, no nível C2 , você tem suporte para até 2.000 conexões de cliente.

Para obter mais informações sobre como determinar a camada de preço de cache a ser usada, consulte Escolhendo a camada certa e Perguntas frequentes sobre planejamento do Cache do Azure para Redis.

Nota

Para obter mais informações sobre como otimizar o processo de dimensionamento, consulte o guia de melhores práticas para o dimensionamento

Pré-requisitos/limitações do dimensionamento do Cache do Azure para Redis

Você pode aumentar ou diminuir para um nível de preço diferente com as seguintes restrições:

  • Não é possível escalar de um nível de preço mais alto para um nível de preço mais baixo.
    • Não é possível escalar de um cache Enterprise ou Enterprise Flash para outra camada qualquer.
    • Não é possível dimensionar de um cache Premium para um cache Standard ou Basic.
    • Não é possível dimensionar de um cache padrão para um cache básico .
  • Você pode dimensionar de um cache Básico para um cache Padrão , mas não pode alterar o tamanho ao mesmo tempo. Se você precisar de um tamanho diferente, poderá posteriormente fazer uma operação de dimensionamento para o tamanho desejado.
  • Não é possível dimensionar de um cache Básico diretamente para um cache Premium . Primeiro, escale de Basic para Standard em uma única operação de dimensionamento e, em seguida, de Standard para Premium na próxima operação de dimensionamento.
  • Não é possível redimensionar de um tamanho maior para o tamanho C0 (250 MB). No entanto, você pode dimensionar para qualquer outro tamanho dentro do mesmo nível de preço. Por exemplo, você pode escalar de C5 Standard para C1 Standard.
  • Não é possível dimensionar de um cache Premium, Standard ou Basic para um cache Enterprise ou Enterprise Flash .
  • Não é possível dimensionar entre Enterprise e Enterprise Flash.

Você pode expandir/aumentar com as seguintes restrições:

  • A expansão só é suportada nas camadas Premium, Enterprise e Enterprise Flash.
  • Reduzir escala é suportado apenas no nível Premium.
  • Na camada Premium, o clustering deve ser habilitado primeiro antes de aumentar ou diminuir a escala.
  • No nível Premium, o suporte para scale out de até 10 fragmentos está geralmente disponível. O suporte para até 30 fragmentos está em versão preliminar. (Para caches com duas réplicas, o limite de fragmentos é 20. Com três réplicas, o limite passa a ser 15.)
  • Somente as camadas Enterprise e Enterprise Flash podem ser dimensionadas e expandidas simultaneamente.

Como dimensionar - níveis Básico, Standard e Premium

Ajuste a escala para cima e para baixo usando o portal do Azure

  1. Para dimensionar seu cache, navegue até o cache no portal do Azure e selecione Dimensionar no menu Recurso.

    Captura de ecrã a mostrar Escala no menu de recursos.

  2. Escolha um nível de preço no painel de trabalho e, em seguida, escolha Selecionar.

    Captura de ecrã mostrando camadas do Cache do Azure para Redis.

  3. Enquanto o cache está sendo dimensionado para a nova camada, uma notificação de Cache Redis de Dimensionamento é exibida.

    Captura de tela mostrando a notificação de dimensionamento.

  4. Quando o dimensionamento estiver concluído, o status mudará de Dimensionamento para Execução.

Nota

Quando o cache é dimensionado para cima ou para baixo através do portal, as definições maxmemory-reserved e maxfragmentationmemory-reserved ajustam-se automaticamente na proporção do tamanho do cache. Por exemplo, se maxmemory-reserved estiver definido como 3 GB em um cache de 6 GB e você dimensionar para cache de 12 GB, as configurações serão atualizadas automaticamente para 6 GB durante o dimensionamento. Quando você reduz a escala, acontece o inverso.

Escalar para cima e para baixo usando o PowerShell

Você pode dimensionar o Azure Cache para Redis com o PowerShell usando o cmdlet Set-AzRedisCache quando as propriedades Size ou Sku forem modificadas. O exemplo a seguir mostra como dimensionar um cache nomeado myCache para um cache de 6 GB na mesma camada.

   Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -Size 6GB

Para obter mais informações sobre dimensionamento com o PowerShell, consulte Para dimensionar um Cache do Azure para Redis usando o PowerShell.

Aumente e diminua a escala usando a CLI do Azure

Para dimensionar seu Cache do Azure para instâncias Redis usando a CLI do Azure, chame o comando az redis update . Use a propriedade sku.capacity para escalar dentro de um nível, por exemplo, de um cache padrão C0 para C1.

az redis update --cluster-name myCache --resource-group myGroup --set "sku.capacity"="2"

Use as propriedades 'sku.name' e 'sku.family' para escalar para uma camada diferente, por exemplo, de um cache C1 padrão para um cache P1 Premium:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.name"="Premium" "sku.capacity"="1" "sku.family"="P"

Para obter mais informações sobre dimensionamento com a CLI do Azure, consulte Alterar configurações de um Cache do Azure para Redis existente.

Nota

Quando dimensiona um cache para aumentar ou diminuir programaticamente (por exemplo, usando o PowerShell ou a CLI do Azure), qualquer maxmemory-reserved ou maxfragmentationmemory-reserved é ignorado como parte da solicitação de atualização. Apenas a sua alteração de escala é considerada. Você pode atualizar essas configurações de memória após a conclusão da operação de dimensionamento.