Quais são as melhores práticas para as camadas Enterprise e Enterprise Flash
Veja as melhores práticas ao usar as camadas Enterprise e Enterprise Flash do Cache do Azure para Redis.
Redundância de Zona
Recomendamos que você implante novos caches em uma configuração com redundância de zona. A redundância de zona garante que os nós do Redis Enterprise sejam distribuídos entre três zonas de disponibilidade, aumentando a redundância de interrupções no nível do data center. O uso da redundância de zona aumenta a disponibilidade. Para mais informações, consulte Contratos de Nível de Serviço (SLA) para Serviços Online.
A redundância de zona é importante na camada Enterprise porque sua instância de cache sempre usa pelo menos três nós. Dois nós são nós de dados, que mantêm seus dados e um nó de quorum. Aumentar a capacidade dimensiona o número de nós de dados em incrementos de número par.
Há também outro nó chamado nó de quorum. Esse nó monitora os nós de dados e seleciona automaticamente o novo nó primário se houver um failover. A redundância de zona garante que os nós sejam distribuídos uniformemente em três zonas de disponibilidade, minimizando o potencial de perda de quorum. Os clientes não são cobrados pelo nó de quorum e não há nenhuma outra cobrança pelo uso da redundância de zona além dos encargos de largura de banda intra zonal.
Scaling
Nas camadas Enterprise e Enterprise Flash do Cache do Azure para Redis, recomendamos priorizar a escala vertical em vez da escalar horizontal. Priorize a escala vertical porque as camadas Enterprise são criadas no Redis Enterprise, que tem capacidade de utilizar mais núcleos de CPU em VMs maiores.
Por outro lado, a recomendação oposta é verdadeira para as camadas Básica, Standard e Premium, que são criadas em Redis de software livre. Nessas camadas, recomendamos priorizar a escala horizontal em vez da escala vertical na maioria dos casos.
Fragmentação e utilização da CPU
Nas camadas Básica, Standard e Premium de Cache do Azure para Redis, determinar o número de CPUs virtuais (vCPUs) utilizadas é simples. Cada nó Redis é executado em uma VM (máquina virtual) dedicada. O processo do servidor Redis é de thread único, utilizando uma vCPU em cada nó primário e cada nó de réplica. As outras vCPUs na VM ainda são usadas para outras atividades, como coordenação de fluxo de trabalho para tarefas diferentes, monitoramento de integridade e carga TLS, entre outras.
Quando você usa clustering, o efeito é espalhar dados entre mais nós com um fragmento por nó. Ao aumentar o número de fragmentos, você aumenta linearmente o número de vCPUs que usa, com base no número de fragmentos no cluster.
O Redis Enterprise, por outro lado, pode usar várias vCPUs para a própria instância do Redis. Em outras palavras, todas as camadas de Cache do Azure para Redis podem usar várias vCPUs para tarefas em segundo plano e monitoramento, mas apenas as camadas Enterprise e Enterprise Flash são capazes de utilizar várias vCPUs por VM para fragmentos redis. A tabela mostra o número de vCPUs eficazes usadas para cada SKU e a configuração de capacidade (ou seja, expansão).
As tabelas mostram o número de vCPUs usadas para os fragmentos primários, não os fragmentos de réplica. Os fragmentos não mapeiam um para um para o número de vCPUs. As tabelas ilustram apenas vCPUs, não fragmentos. Algumas configurações usam mais fragmentos do que vCPUs disponíveis para aumentar o desempenho em alguns cenários de uso.
E1 (versão prévia)
Capacidade | VCPUs eficazes |
---|---|
2 | 1 (com capacidade de intermitência) |
E5
Capacity | VCPUs eficazes |
---|---|
2 | 1 |
4 | 2 |
6 | 6 |
E10
Capacity | VCPUs eficazes |
---|---|
2 | 2 |
4 | 6 |
6 | 6 |
8 | 16 |
10 | 20 |
E20
Capacity | VCPUs eficazes |
---|---|
2 | 2 |
4 | 6 |
6 | 6 |
8 | 16 |
10 | 20 |
E50
Capacity | VCPUs eficazes |
---|---|
2 | 6 |
4 | 6 |
6 | 6 |
8 | 30 |
10 | 30 |
E100
Capacity | VCPUs eficazes |
---|---|
2 | 6 |
4 | 30 |
6 | 30 |
8 | 30 |
10 | 30 |
E200
Capacity | VCPUs eficazes |
---|---|
2 | 30 |
4 | 60 |
6 | 60 |
8 | 120 |
10 | 120 |
E400
Capacity | VCPUs eficazes |
---|---|
2 | 60 |
4 | 120 |
6 | 120 |
8 | 240 |
10 | 240 |
F300
Capacity | VCPUs eficazes |
---|---|
3 | 6 |
9 | 30 |
F700
Capacity | VCPUs eficazes |
---|---|
3 | 30 |
9 | 30 |
F1500
Capacity | VCPUs eficazes |
---|---|
3 | 30 |
9 | 90 |
Clustering em Enterprise
As camadas Enterprise e Enterprise Flash são inerentemente clusteradas, em contraste com as camadas Básica, Standard e Premium. A implementação depende da política de clustering selecionada. As camadas Enterprise oferecem duas opções para a Política de Clustering: OSS e Enterprise. A política de cluster do OSS é recomendada para a maioria dos aplicativos porque dá suporte a uma taxa de transferência máxima mais alta, mas há vantagens e desvantagens para cada versão.
A política de clustering do OSS implementa a mesma API de Cluster Redis que o Redis de software livre. A API do Cluster Redis permite que o cliente Redis se conecte diretamente a cada nó Redis, minimizando a latência e otimizando a taxa de transferência de rede. Como resultado, a escalabilidade quase linear é obtida ao escalar o cluster com mais nós. A política de clustering do OSS geralmente fornece a melhor latência e desempenho de taxa de transferência, mas exige que sua biblioteca de clientes dê suporte ao Clustering Redis. A política de clustering OSS também só pode ser usado com o módulo RediSearch.
A política de clustering Enterprise é uma configuração mais simples que expõe um único ponto de extremidade para conexões de cliente. O uso da política de clustering Enterprise roteia todas as solicitações para um único nó Redis que, em seguida, é usado como um proxy, roteando internamente as solicitações para o nó correto no cluster. A vantagem dessa abordagem é que as bibliotecas de clientes do Redis não precisam dar suporte ao Clustering Redis para aproveitar vários nós. A desvantagem é que o proxy de nó único pode ser um gargalo, na utilização de computação ou na taxa de transferência de rede. A política de clustering Enterprise é a única que pode ser usada com o módulo RediSearch.
Comandos de várias chaves
Como as camadas Enterprise usam uma configuração clusterizado, você pode ver CROSSSLOT
exceções em comandos que operam em várias chaves. O comportamento varia dependendo da política de clustering usada. Se você usar a política de clustering do OSS, os comandos de várias chaves exigirão que todas as chaves sejam mapeadas para o mesmo slot de hash.
Você também pode ver CROSSSLOT
erros com a política de clustering Enterprise. Somente os seguintes comandos de várias chaves são permitidos entre slots com clustering Enterprise: DEL
, MSET
, MGET
, EXISTS
, UNLINK
e TOUCH
.
Em bancos de dados Active-Active, os comandos de gravação de várias chaves (DEL
, MSET
, UNLINK
) só podem ser executados em chaves que estão no mesmo slot. No entanto, os seguintes comandos multichave são permitidos entre slots em bancos de dados Active-Active: MGET
, EXISTS
e TOUCH
. Para obter mais informações, consulte clustering banco de dados.
Melhores práticas do Enterprise Flash
A camada Enterprise Flash utiliza armazenamento Flash NVMe e RAM. Como o armazenamento Flash é de menor custo, o uso da camada Enterprise Flash permite que você troque um pouco de desempenho por eficiência de preço.
Em instâncias do Enterprise Flash, 20% do espaço em cache está na RAM, enquanto os outros 80% usam o armazenamento Flash. Todas as chaves são armazenadas na RAM, enquanto os valores são armazenados no armazenamento Flash ou na RAM. O software Redis determina de forma inteligente o local dos valores. Os valores Frequentes são armazenados na RAM, enquanto os valores Não frequentes que são menos usados são mantidos no Flash. Antes que os dados sejam lidos ou gravados, eles devem movidos para a RAM, tornando-se dados Frequentes.
Como o Redis opta pelo melhor desempenho, a instância primeiro preenche a RAM disponível antes de adicionar itens ao armazenamento Flash. O preenchimento de RAM primeiro tem algumas implicações para o desempenho:
- Um melhor desempenho e menor latência podem ocorrer ao testar com baixo uso de memória. O teste com uma instância de cache completa pode produzir um desempenho menor porque apenas a RAM está sendo usada na fase de teste de uso de memória baixa.
- À medida que você grava mais dados no cache, a proporção de dados em RAM em comparação com o armazenamento Flash diminui, normalmente fazendo com que o desempenho de latência e taxa de transferência também diminua.
Cargas de trabalho adequadas para a camada Enterprise Flash
As cargas de trabalho que provavelmente funcionarão bem na camada Enterprise Flash geralmente têm as seguintes características:
- Cargas de trabalho com uso intenso de leitura, com uma alta taxa de comandos de leitura para gravar comandos.
- O acesso é focado em um subconjunto de chaves que são usadas com muito mais frequência do que o restante do conjunto de dados.
- Valores relativamente grandes em comparação com nomes de chave. (Como os nomes de chave são sempre armazenadas na RAM, os valores grandes podem se tornar um gargalo para o crescimento da memória.)
Cargas de trabalho que não são adequadas para a camada Enterprise Flash
Algumas cargas de trabalho têm características de acesso menos otimizadas para o design da camada Flash:
- Cargas de trabalho com uso intenso de gravação.
- Padrões de acesso a dados aleatórios ou uniformes na maior parte do conjunto de dados.
- Nomes de chave longos com tamanhos de valor relativamente pequenos.
Manipulando cenários de região para baixo com replicação geográfica ativa
A replicação geográfica ativa é um recurso poderoso para aumentar drasticamente a disponibilidade ao usar as camadas Enterprise de Cache do Azure para Redis. No entanto, você deve tomar medidas para preparar seus caches se houver uma interrupção regional.
Por exemplo, considere estas dicas:
- Identifique com antecedência para qual outro cache no grupo de replicação geográfica alternar para se uma região ficar inoperante.
- Verifique se os firewalls estão definidos para que todos os aplicativos e clientes possam acessar o cache de backup identificado.
- Cada cache no grupo de replicação geográfica tem sua própria chave de acesso. Determine como o aplicativo alternará para diferentes chaves de acesso ao ter como destino um cache de backup.
- Se um cache no grupo de replicação geográfica ficar inativo, um acúmulo de metadados começará a ocorrer em todos os caches do grupo de replicação geográfica. Os metadados não podem ser descartados até que as gravações possam ser sincronizadas novamente com todos os caches. Você pode impedir o acúmulo de metadados forçando a desvinculação do cache que está inativo. Considere monitorar a memória disponível no cache e desvincular se houver pressão de memória, especialmente para cargas de trabalho pesadas de gravação.
Também é possível usar um padrão de disjuntor. Use o padrão para redirecionar automaticamente o tráfego de um cache que enfrenta uma interrupção de região e para um cache de backup no mesmo grupo de replicação geográfica. Use serviços do Azure, como o Gerenciador de Tráfego do Azure ou Azure Load Balancer para habilitar o redirecionamento.
Persistência de dados versus Backup de Dados
O recurso de persistência de dados nas camadas Enterprise e Enterprise Flash foi projetado para fornecer automaticamente um ponto de recuperação rápida para dados quando um cache fica inoperante. A recuperação rápida é possível armazenando o arquivo RDB ou AOF em um disco gerenciado montado na instância de cache. Os arquivos de persistência no disco não são acessíveis aos usuários.
Muitos clientes desejam usar a persistência para fazer backups periódicos dos dados em seu cache. Não recomendamos que você use a persistência de dados dessa maneira. Em vez disso, use o recurso importação/exportação. Você pode exportar cópias de dados de cache no formato RDB diretamente para sua conta de armazenamento escolhida e disparar a exportação de dados com a frequência necessária. A exportação pode ser disparada no portal ou usando as ferramentas CLI, PowerShell ou SDK.
Limitações de SKU do E1 (versão prévia)
O SKU E1 (versão prévia) destina-se principalmente a cenários de desenvolvimento/teste. O E1 é executado em VMs menores com capacidade de intermitência. VMs com capacidade de intermitência oferecem desempenho variável com base na quantidade de CPU consumida. Ao contrário de outras ofertas de SKU Enterprise, você não pode escalar horizontalmente o SKU E1, embora ainda seja possível escalar verticalmente para um SKU maior. O SKU E1 também não dá suporte a replicação geográfica ativa.