Esta página explica vários cenários de erro e fornece orientações para resolver os erros.
Cenários de replicação
Esta seção explica problemas de replicação que podem ocorrer com seu cluster.
Como monitorar atrasos de replicação?
O Memorystore para Redis Cluster tem a /cluster/replication/maximum_offset_diff métrica. Essa métrica monitora a diferença máxima de deslocamento de replicação (em bytes) para um nó em um cluster principal.
Ao manter a diferença de deslocamento de replicação baixa, as réplicas podem realizar operações de sincronização incremental com mais frequência e a um custo menor do que as operações de sincronização completa.
Recomendamos definir um limite para a métrica maximum_offset_diff. Se o limite for excedido, o Memorystore for Redis Cluster poderá notificar você por um alerta.
Com base no tipo de nó do cluster, recomendamos definir o limite da seguinte maneira:
Se o tipo de nó for
redis-shared-core-nano,redis-standard-small,redis-highmem-medium,redis-highcpu-mediumouredis-standard-large, defina o limite para ser menor que 64 MB.Se o tipo de nó for
redis-highmem-xlargeouredis-highmem-2xlarge, defina o limite para ser menor que 1 GB.
Cenários de erro de conectividade
Esta seção explica problemas de conectividade que podem ocorrer no cluster.
Erro de conexão causado por regras de firewall
As regras de firewall podem causar erros de conexão bloqueando as portas usadas pelo Memorystore para Redis Cluster. Para os dois endpoints do Private Service Connect do cluster, permita as portas TCP de 11000 a 13047. Para mais informações sobre esses endpoints, consulte Endereços de rede reservados.
Erro de conexão causado por políticas da organização
É possível que você tenha uma política da organização que bloqueie as conexões do Private Service Connect com o cluster.
Se a política da organização usar a política .restrictPrivateServiceConnectProducer, permita a pasta 961333125034, que é uma pasta específica para o Memorystore para Redis Cluster. Exemplo:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/961333125034
Se a política da organização usar a política .disablePrivateServiceConnectCreationForConsumers, permita SERVICE_PRODUCERS. Exemplo:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
Erro de conexão causado por conexões sem resposta
Recomendamos configurar o aplicativo cliente para detectar conexões sem resposta ao Memorystore para Redis Cluster. Quando uma conexão sem resposta é detectada, o cliente precisa redefini-la. Para criar um aplicativo resiliente, recomendamos as seguintes configurações de cliente:
- Configurar parâmetros de sinal de atividade do TCP: defina os parâmetros
TCP keepalive time,TCP keepalive intervaleTCP keepalive probespara que os clientes detectem e descartem conexões sem resposta de forma proativa, mesmo quando as conexões estiverem inativas. Por exemplo, se você definir o parâmetroTCP keepalive timecomo 30 segundos,TCP keepalive intervalcomo 10 segundos eTCP keepalive probescomo 3, os clientes vão redefinir as conexões inativas sem resposta em um minuto. - Configurar tempos limite de usuário TCP: defina esse tempo limite nos clientes para redefinir conexões que têm solicitações pendentes e param de responder. Por exemplo, se você definir o tempo limite como 15 segundos, os clientes vão redefinir as conexões sem resposta que têm solicitações pendentes após 15 segundos.
Cenários de uso da CPU
Esta seção explica problemas de uso da CPU que podem ocorrer no cluster.
O buffer de saída do cluster fica sem espaço
Se o buffer de saída do cluster ficar sem espaço, faça o seguinte:
- Defina um valor menor para o
maxmemoryparâmetro. - Use a política
allkeys-lrumaxmemory.
Quando a memória do cluster está cheia e uma nova gravação chega, o Memorystore para Redis Cluster remove as chaves para liberar espaço para a gravação com base na política maxmemory do cluster. A política allkeys-lru remove as chaves usadas menos recentemente (LRU, na sigla em inglês) de todo o conjunto de chaves.
Recomendamos monitorar a maxmemory e a memória usada do cluster. Isso ajuda você a saber se o cluster atinge a capacidade provisionada.
Além disso, ao reduzir o valor do parâmetro maxmemory, você terá mais espaço para a sobrecarga.
Por que as métricas externas podem estar ausentes do cluster?
Se o cluster tiver um alto uso da CPU ou se os recursos dele ficarem esgotados (por exemplo, por ter muitas conexões), o cluster poderá ter um comportamento inadequado e as métricas externas poderão estar ausentes.
Cenários de persistência
Esta seção explica problemas de persistência que podem ocorrer com seu cluster.
O tráfego de gravação excede a capacidade do Memorystore para Redis Cluster de compactar e recuperar espaço por meio da reescrita do AOF
Se essa situação ocorrer, o arquivo somente de anexos (AOF) vai crescer mais rápido do que o processo de reescrita pode gerenciar. Isso leva ao esgotamento do disco, causa falhas de gravação e bloqueia operações que exigem a criação de réplicas e a sincronização completa.
O Memorystore para Redis Cluster implementou barreiras de proteção para regular a taxa de transferência de gravação. Isso garante que a reescrita do AOF possa acompanhar cargas de trabalho de gravação alta e sustentada.