Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Por que os alertas de memória diferem do uso monitorado

Última atualização: Aug 13, 2026

Se você receber um alerta de alto uso de memória para sua instância Tair (Redis OSS-compatible) ou se sua aplicação apresentar um erro de out-of-memory (OOM), mas o uso de memória exibido no Performance Monitoring parecer baixo, este tópico explica as possíveis causas e soluções.

Sintomas

Sintoma 1:

Você recebe um alerta de memória da instância indicando que o uso de memória excedeu o limiar (por exemplo, o valor médio é >= 90% em três medições consecutivas), mas a página Performance Monitoring no console mostra que o uso geral de memória está baixo.

Sintoma 2:

Sua aplicação retorna um erro command not allowed when used memory > 'maxmemory', mas a página Performance Monitoring indica que a memória não está totalmente consumida ou que apenas um único data node apresenta alto uso de memória.

Causas

Discrepância entre monitoramento e alertas

Pode haver discrepância entre o uso de memória no Performance Monitoring e um alerta de memória ao utilizar uma cluster instance. O alerta geralmente reflete as métricas de um único data node, enquanto você visualiza as métricas gerais da instância. Em uma cluster instance, métricas do CloudMonitor como ShardingMemoryUsage são reportadas no nível do data shard: cada data shard reporta seu próprio uso de memória independentemente. Já MemoryUsage é uma métrica no nível da instância. A porcentagem de uso de memória exibida nas métricas gerais da instância no console corresponde à média de todos os data shards, enquanto o alerta de memória é acionado com base no uso de um único data shard. Consequentemente, um alerta pode ser disparado quando o uso de memória de um data shard ultrapassa o limiar, mesmo que a média de uso de memória de toda a instância ainda esteja abaixo desse valor.

Verifique os detalhes do alerta recebido. Se ele contiver o campo nodeId = <Instance ID>-db-<Number>, isso indica que apenas o data node específico identificado por <Instance ID>-db-<Number> excedeu o limiar de memória.

Siga estas etapas para confirmar se o uso de memória do data node corresponde ao alerta.

  1. Faça login no console e acesse a página Instances. Na barra de navegação superior, selecione a região onde reside a instância que você deseja gerenciar. Em seguida, localize a instância e clique em ID da instância.

  2. No painel de navegação à esquerda, clique em Performance Monitoring.

  3. Clique em aba Data Node e selecione o data node correspondente a <Instance ID>-db-<Number>. Verifique se o uso de memória dele corresponde ao valor apresentado no alerta. É possível visualizar os gráficos de monitoramento de CPU Usage e Memory Usage para o Data Node selecionado.

Desequilíbrio de memória entre data nodes

Quando um ou mais data nodes em uma cluster instance apresentam uso de memória significativamente maior que os demais, isso indica um desequilíbrio de memória. Utilize o recurso instance diagnostics para verificar rapidamente se há problemas de desequilíbrio na sua instância.

O que causa o desequilíbrio de memória

As principais causas do desequilíbrio de memória são:

  • Presença de chaves grandes.

    Uma cluster instance utiliza um algoritmo de verificação de redundância cíclica (CRC) para calcular a qual slot uma chave pertence e, em seguida, grava os dados no data shard correspondente.

    Mesmo que as chaves estejam distribuídas uniformemente entre os data shards, uma única chave que armazena muitos campos ou campos excessivamente grandes pode se tornar uma chave grande, resultando em desequilíbrio de memória.

  • Uso de hash tags.

    Ao utilizar uma hash tag, como em user:{1000}:name, a instância executa o cálculo CRC sobre a string dentro das chaves ({}). Chaves com a mesma hash tag são mapeadas para o mesmo slot e armazenadas no mesmo data shard. Se muitas chaves compartilharem a mesma hash tag, os dados ficam concentrados em um único data shard, causando desequilíbrio de memória.

Soluções

Verificar e dividir chaves grandes

Localizar chaves grandes

Utilize o recurso offline key analysis para identificar chaves grandes.

Para conhecer outros métodos de identificação de chaves grandes, consulte Large keys and hotkeys.

Dividir chaves grandes

Por exemplo, divida uma chave HASH com dezenas de milhares de membros em várias chaves HASH menores, cada uma com uma quantidade razoável de membros. Em uma cluster instance, a divisão de chaves grandes ajuda significativamente a equilibrar o uso de memória entre os data shards.

Verificar o uso de hash tags

Caso esteja utilizando uma hash tag que cause concentração de dados, considere dividi-la em múltiplas hash tags conforme a lógica da sua aplicação. Essa prática auxilia na distribuição mais uniforme dos dados entre diferentes data shards.

Atualizar a especificação da instância

A atualização da especificação da instância aumenta a memória disponível para cada shard e pode servir como solução temporária para o desequilíbrio de memória. Para obter as etapas detalhadas, consulte Change instance configuration.

Importante
  • O sistema inicia uma pré-verificação de desequilíbrio de dados durante a alteração da especificação da instância. Se o tipo de instância selecionado não conseguir lidar com o problema de desequilíbrio de dados, o sistema reportará um erro. Selecione um tipo de instância com especificações superiores e tente novamente.

  • Após atualizar as especificações da instância, o desequilíbrio de uso de memória pode ser atenuado. No entanto, o desequilíbrio também pode ocorrer nos recursos de largura de banda e CPU.