Resolver problemas

Nesta página, explicamos vários cenários de erro e oferecemos orientações para resolver os erros.

Cenários de replicação

Esta seção explica os problemas de replicação que podem ocorrer com sua instância.

Como monitorar atrasos de replicação?

O Memorystore para Valkey tem a /instance/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 uma instância 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 que você defina um limite para a métrica maximum_offset_diff. Se o limite for excedido, o Memorystore para Valkey poderá notificar você por um alerta.

Com base no tipo de nó da sua instância, recomendamos que você defina o limite da seguinte maneira:

  • Se o tipo de nó for shared-core-nano, custom-pico, custom-micro, custom-mini, standard-small, highmem-medium, highcpu-medium ou standard-large, defina o limite para ser menor que 64 MB.

  • Se o tipo de nó for highmem-xlarge ou highmem-2xlarge, defina o limite para ser menor que 1 GB.

O que fazer se houver um atraso de replicação entre a instância principal e as réplicas?

Pode haver um atraso de replicação significativo se a instância principal tiver muitas operações de gravação e as réplicas não conseguirem acompanhar para replicar essas operações. Para resolver esse problema, recomendamos que você dimensione a capacidade de instância aumentando o número de shards para a instância.

Cenários de uso da CPU

Esta seção explica os problemas de uso da CPU que sua instância pode encontrar.

O que fazer se o buffer de saída da instância ficar sem espaço?

Se o buffer de saída da instância do Memorystore para Valkey ficar sem espaço, faça o seguinte:

Quando a memória da instância está cheia e uma nova gravação chega, o Memorystore para Valkey remove as chaves para liberar espaço para a gravação com base na política maxmemory da instância. A política allkeys-lru remove as chaves usadas menos recentemente (LRU, na sigla em inglês) de todo o conjunto de chaves.

Recomendamos que você monitore a maxmemory e a memória usada da instância. Isso ajuda você a saber se a instância atinge a capacidade provisionada. Além disso, ao reduzir o valor do parâmetro maxmemory, você terá mais espaço para a sobrecarga.

Cenários de gerenciamento de memória

Esta seção explica os problemas de gerenciamento de memória que sua instância pode encontrar.

Qual métrica pode ser usada para determinar se a instância está sob estresse de memória?

Para monitorar o uso da memória de uma instância do Memorystore para Valkey, recomendamos que você consulte a métrica /instance/memory/maximum_utilization. Se o uso da memória da instância se aproximar de 80% e você espera que o uso de dados aumente, então escalonar verticalmente o tamanho da instância para melhorar o desempenho e liberar espaço para novos dados.

Cenários de monitoramento

Esta seção explica os problemas de monitoramento que sua instância pode encontrar.

Como configurar alertas para o Memorystore para Valkey?

É possível usar o Cloud Monitoring para definir alertas que notificam você se alguma métrica exceder os limites definidos para a instância. Para mais informações sobre como definir alertas no Cloud Monitoring, consulte Definir um alerta do Monitoring para uso da memória.

Cenários de gerenciamento de conexões

Esta seção explica os problemas de gerenciamento de conexões que sua instância pode encontrar.

O que fazer se você atingir o limite de conexões ou receber um tempo limite de conexão?

Quando você atinge o limite de conexões, o cliente não consegue se conectar ao servidor. Isso é conhecido como rejeição de conexão.

Se isso acontecer, faça o seguinte:

  • Use a métrica /instance/node/stats/rejected_connections_count para determinar o número de conexões que o Memorystore for Valkey rejeita porque o nó da instância atinge o limite máximo de clientes.
  • Use a métrica /instance/node/clients/connected_clients para determinar o número de clientes conectados ao nó da instância. Dessa forma, é possível verificar se todos os nós da instância estão abaixo do limite.
  • Interrompa as conexões vazadas ou indesejadas usando o client kill comando.
  • Reduza a contagem de conexões ou o tamanho do pool no aplicativo cliente. Para mais informações, consulte a documentação associada ao aplicativo cliente.
  • Ajuste o limite máximo de clientes. Para mais informações, consulte Configurar uma instância.
  • Escalone a instância para um tipo de nó maior para que ela tenha um limite de conexão mais alto.

Cenários de tempo limite

Esta seção explica os problemas de tempo limite que sua instância pode encontrar.

O que fazer se você receber um tempo limite de E/S?

Quando uma operação de leitura ou gravação no Memorystore para Valkey não é concluída dentro de um período especificado, ocorre um tempo limite de E/S. Esse tempo limite pode acontecer por vários motivos. Por exemplo, um ou mais nós da instância podem estar sobrecarregados.

Se você receber um tempo limite de E/S, faça o seguinte:

  • Use the instance/cpu/maximum_utilization métrica para determinar a utilização da CPU de um nó na instância, de 0,0 (0%) a 1,0 (100%). Recomendamos que todos os nós tenham uma porcentagem de utilização da CPU menor que 80%. Para mais informações, consulte Práticas recomendadas de uso da CPU.
  • Quando o cliente se desconecta do servidor porque o servidor atinge o tempo limite, tente novamente com espera exponencial e com Jitter. Isso ajuda a evitar que vários clientes sobrecarreguem o servidor simultaneamente.

Cenários de erro de conectividade

Esta seção explica os problemas de conectividade que sua instância pode encontrar.

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 Valkey. É necessário permitir todas as portas para os dois endpoints do Private Service Connect da instância. Para mais informações sobre os endpoints, consulte Endereços de rede reservados.

Erro de conexão causado por políticas da organização

É possível ter uma política da organização que bloqueia as conexões do Private Service Connect com a instância do Memorystore para Valkey.

Se a política da organização usar a política .restrictPrivateServiceConnectProducer, permita o número da pasta 672235397475, que é uma pasta específica para o Memorystore para Valkey. Exemplo:

name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
    rules:
      - values:
          allowedValues:
          - under:folders/672235397475

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

Como processar erros para instâncias com o modo de cluster desativado

  • Se o aplicativo se conectar ao endpoint de leitura de uma instância que não tem réplicas de leitura, a conexão será fechada e a mensagem de erro ERR no replicas found será exibida. Nesse caso, tente conectar o aplicativo ao endpoint principal ou adicione réplicas de leitura à instância.

  • Em caso de failover, as conexões atuais do aplicativo serão fechadas e a mensagem de erro ERR role change occurred será exibida. Essa mensagem de erro também será exibida se o aplicativo se conectar ao endpoint de leitura de uma instância e todas as réplicas de leitura da instância falharem. Nesse caso, o aplicativo precisa tentar novamente a conexão com espera exponencial.

Cenários de persistência

Esta seção explica os problemas de persistência que podem ocorrer com sua instância.

O tráfego de gravação excede a capacidade do Memorystore para Valkey de compactar e recuperar espaço por meio da reescrita de AOF

Se essa situação ocorrer, o arquivo somente de anexação (AOF) 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 Valkey implementou proteções para regular a capacidade de processamento de gravação. Isso garante que a reescrita de AOF possa acompanhar cargas de trabalho de gravação alta e sustentada.