Compartilhar via


Escale uma instância de Cache do Azure para Redis

Importante

O Cache do Azure para Redis anunciou a linha do tempo de desativação para todos os SKUs. Recomendamos migrar suas instâncias do Cache do Azure para Redis para o Redis Gerenciado pelo Azure assim que possível.

Para obter mais detalhes sobre a aposentadoria:

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

Tipos de dimensionamento

Basicamente, existem duas maneiras de escalar uma Instância de Cache do Azure para Redis:

  • Escalar verticalmente aumenta o tamanho da VM (Máquina Virtual) que executa o servidor Redis, adicionando mais memória, CPUs virtuais (vCPUs) e largura de banda de rede. A escala vertical também é chamada de dimensionamento vertical. O oposto de escalar verticalmente é Reduzir verticalmente.

  • Reduzir verticalmente divide a instância de cache em mais nós do mesmo tamanho, aumentando a memória, as vCPUs e a largura de banda de rede por meio da paralelização. A redução vertical também é conhecida como escala horizontal ou fragmentação. O oposto de reduzir verticalmente é Reduzir horizontalmente. Na comunidade Redis, a redução vertical é frequentemente chamada de clustering.

Escopo de disponibilidade

Camada Básico e Standard Premium Enterprise e Enterprise Flash
Expansão Sim Sim Sim
Reduzir verticalmente Sim Sim Não
Escalonamento horizontal Não Sim Sim
Reduzir horizontalmente 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 seu cache. Use essas informações para determinar quando escalonar o cache.

Você pode monitorar as métricas a seguir para determinar se é preciso escalonar.

  • Carga do Servidor Redis
    • Alta carga do servidor Redis significa que o servidor não consegue manter o ritmo das solicitações de todos os cliente. Como um servidor Redis é um processo encadeamento único, normalmente é mais útil escalar horizontalmente em vez de escalar verticalmente. Escalar horizontalmente permitindo o clustering ajuda a distribuir funções de sobrecarga em vários processos do Redis. O escala horizontal também ajuda a distribuir criptografia/descriptografia e conexão/desconexão TLS, acelerando as instâncias de cache usando TLS.
    • A escala vertical 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 de serviço Enterprise e Enterprise Flash usam o Redis Enterprise em vez do Redis em 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, escalar verticalmente e escalar horizontalmente nessas camadas pode ser útil para reduzir a carga do servidor.
  • Uso de Memória
    • O uso de memória alta indica que o tamanho dos dados é muito grande para o tamanho do cache atual. Considere a possibilidade de dimensionar para um tamanho de cache com memória maior. Escalar verticalmente ou escalar horizontalmente é eficaz aqui.
  • Conexões do cliente
    • Cada tamanho de cache tem um limite para o número de conexões de cliente às quais ele pode dar suporte. Se as conexões do cliente estiverem próximas do limite do tamanho do cache, considere escalar verticalmente para uma camada maior. Escalar horizontalmente não aumenta o número de conexões de cliente com suporte.
    • Para obter mais informações sobre os limites de conexão por tamanho do cache, confira Preço do Cache do Azure para Redis.
  • Largura de banda da rede
    • Se o servidor Redis exceder a largura de banda disponível, as solicitações de clientes poderão atingir o tempo limite porque o servidor não pode enviar dados por push para o cliente de forma rápida o suficiente. Para ver a quantidade de largura de banda do lado do servidor que está sendo usada, verifique as métricas "Leitura de Cache" e "Gravação de Cache". Se o servidor Redis estiver excedendo a largura de banda da rede disponível, considere a possibilidade de escalar horizontalmente ou verticalmente para um tamanho de cache maior com maior largura de banda de rede.
    • Para caches da camada de serviço Enterprise que usam a Política de cluster Enterprise, a escala horizontal não aumenta a largura de banda da rede.
    • Para obter mais informações sobre largura de banda disponível por tamanho do cache, confira Perguntas frequentes sobre o planejamento do Cache do Azure para Redis.
  • Verificações Internas do Defender
    • Nos caches C0 e C1, você pode ver picos curtos na carga do servidor não causados por um aumento nas solicitações algumas vezes por dia enquanto a verificação de vírus está em execução nas VMs. Você vê uma latência maior para solicitações enquanto as verificações internas do Defender são executadas nessas camadas algumas vezes por dia. Os caches nas camadas C0 e C1 têm apenas um núcleo para multitarefa, dividindo o trabalho de serviço de verificação de vírus e solicitações Redis. Você pode reduzir o efeito escalando para uma oferta de camada superior com vários núcleos de CPU, como C2.
    • O aumento do tamanho do cache nas camadas mais altas ajuda a resolver quaisquer preocupações de latência. Além disso, no nível de C2, você tem suporte para até 2.000 conexões de cliente.

Para obter mais informações sobre como determinar qual camada de preço de cache usar, confira Escolhendo o nível correto e Perguntas frequentes sobre o planejamento do Cache do Azure para Redis.

Observação

Para obter mais informações sobre como otimizar o processo de escalonamento, confira o guia de práticas recomendadas para colocação em escala

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

Você pode escalar verticalmente/horizontalmente para um tipo de preço diferente com as restrições a seguir:

  • Você não pode dimensionar de uma camada de preços mais alta para uma camada de preços mais baixa.
    • Não é possível escalonar de um cache Enterprise ou Enterprise Flash para qualquer outra camada de serviço.
    • Você não pode dimensionar de um cache Premium para um cache Standard ou Básico.
    • Você não pode dimensionar de um cache Standard para um cache Básico.
  • É possível dimensionar de um cache Básico para um cache Standard, mas não é possível alterar o tamanho simultaneamente. Para um tamanho diferente, realize posteriormente uma operação de dimensionamento para o tamanho desejado.
  • Você não pode dimensionar de um cache Básico diretamente para um cache Premium. Primeiro, dimensione do Básico para o Standard em uma única operação de dimensionamento e do Standard para o Premium em uma operação de dimensionamento subsequente.
  • Não é possível escalar de um tamanho maior para o tamanho C0 (250 MB). No entanto, você pode fazer a redução horizontal para qualquer outro tamanho dentro do mesmo nível de preço. Por exemplo, você pode fazer a redução horizontal do C5 Standard para o C1 Standard.
  • Não é possível escalonar de um cache Premium, Standard ou Basic para um cache Enterprise ou Enterprise Flash.
  • Não é possível escalonar entre Enterprise e Enterprise Flash.

Você pode escalar horizontalmente/verticalmente com as seguintes restrições:

  • A escala horizontal só tem suporte nas camadas Premium, Enterprise e Enterprise Flash.
  • A redução horizontal só tem suporte na camada Premium.
  • Na camada Premium, o clustering deve ser habilitado primeiro, antes de escalar ou reduzir horizontalmente.
  • No nível Premium, há suporte em disponibilidade geral para escalar verticalmente até 10 fragmentos. O suporte para até 30 fragmentos está em versão prévia. (Para caches com duas réplicas, o limite de fragmentos é 20. Com três réplicas, o limite de fragmentos é 15.)
  • Somente as camadas de serviço Enterprise e Enterprise Flash podem escalar verticalmente e horizontalmente simultaneamente.

Como escalar – camadas de serviço Basic, Standard e Premium

Escalar e reduzir verticalmente usando o portal do Azure

  1. Para escalonar seu cache, navegue até ele no portal do Azure e selecione Escalar no menu Recurso.

    Captura de tela mostrando Escalar no menu d de recursos.

  2. Selecione um tipo de preço no painel de trabalho e escolha Selecionar.

    Captura de tela mostrando as camadas de serviço do Cache do Azure para Redis.

  3. Enquanto o cache escala para a nova camada, uma notificação Escalando o Cache Redis é exibida.

    Captura de tela mostrando a notificação de colocação em escala.

  4. Quando o dimensionamento for concluído, o status será alterado de Dimensionando para Executando.

Observação

Quando você escalar ou reduzir verticalmente um cache no portal, as configurações maxmemory-reserved e maxfragmentationmemory-reserved são reduzidas horizontalmente em proporção ao tamanho do cache. Por exemplo, maxmemory-reserved se for definido como 3 GB em um cache de 6 GB e você dimensionar para um cache de 12 GB, as configurações serão atualizadas automaticamente para 6 GB durante o dimensionamento. Quando você o reduz verticalmente, o inverso acontece.

Escalar e reduzir verticalmente usando o PowerShell

É possível escalar as instâncias do Cache Redis do Azure com o PowerShell usando o cmdlet Set-AzRedisCache quando as propriedades Size ou Sku forem modificadas. O exemplo a seguir mostra como escalar um cache denominado myCache para um cache de 6 GB na mesma camada de serviço.

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

Para saber mais sobre o dimensionamento com o PowerShell, consulte Para dimensionar um Cache Redis do Azure usando PowerShell.

Escalar e reduzir verticalmente usando a CLI do Azure

Para escalar suas instâncias do Cache do Azure para Redis usando a CLI do Azure, chame o comando az redis update. Use a propriedade sku.capacity para escalar dentro de uma camada, por exemplo, de um cache Standard C0 para Standard C1:

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

Use as propriedades "sku.name" e "sku.family" para escalar verticalmente para uma camada diferente, por exemplo, de um cache Standard C1 para um cache Premium P1:

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

Para saber mais sobre o dimensionamento com o CLI do Azure, consulte Alterar as configurações de um Cache Redis do Azure existente.

Observação

Quando você dimensiona um cache para cima ou para baixo programaticamente (por exemplo, usando o PowerShell ou a CLI do Azure), quaisquer maxmemory-reserved ou maxfragmentationmemory-reserved são ignorados como parte da solicitação de atualização. Somente a alteração de escala é respeitada. Você pode atualizar essas configurações de memória após a conclusão da operação de dimensionamento.