Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Solucionar alta utilização de CPU

Última atualização: Jun 26, 2026

A alta utilização de CPU em uma instância Tair (ou Redis Open-Source Edition) pode ter várias causas. Em aplicações com alta concorrência e throughput, esse comportamento pode ser esperado, desde que a CPU não seja um gargalo. No entanto, frequentemente indica um problema. Por exemplo, a carga de trabalho pode exceder a capacidade de uma instância Redis Open-Source Edition. Nesse caso, resolva o gargalo de recursos adicionando shards ou réplicas, ou fazendo upgrade para Tair (Enterprise Edition). O uso inadequado, como executar comandos intensivos de CPU ou acessar hotkeys ou chaves grandes, também pode causar picos anormais na utilização de CPU. Para garantir a estabilidade da aplicação, investigue se a utilização média de CPU ultrapassar 70% ou se permanecer acima de 90% por cinco minutos consecutivos.

Causas da alta utilização de CPU

  • Comando intensivo de CPU: Comandos como KEYS, HGETALL, ou o uso de MGET, MSET, HMSET e HMGET para operar em muitas chaves simultaneamente têm complexidade de tempo O(N), onde N é um valor elevado. Comandos com maior complexidade de tempo consomem mais recursos de CPU, elevando a utilização.

    Como os comandos são executados em uma única thread, sua execução pode bloquear a instância, fazendo com que outras requisições se enfileirem e aumentando a latência da aplicação. Em casos extremos, isso pode gerar timeouts e causar uma avalanche de cache, em que o tráfego ignora a camada de cache e atinge diretamente o banco de dados de backend.

    Nota

    Para mais informações sobre a complexidade de tempo de cada comando, consulte Commands.

  • Hotkey: Quando um pequeno número de chaves recebe uma quantidade desproporcionalmente alta de requisições, elas se tornam hotkeys. Uma hotkey pode consumir recursos significativos de CPU e aumentar a latência de outras operações. Em uma arquitetura de cluster, se as hotkeys estiverem concentradas em poucos nós de dados, pode ocorrer desequilíbrio na utilização de CPU, em que a utilização desses nós se torna muito superior à dos demais.

  • Chave grande: O acesso a uma chave grande consome mais memória, recursos de CPU e largura de banda de rede. Chaves grandes têm maior probabilidade de se tornarem hotkeys, contribuindo para a alta utilização de CPU. Se estiverem concentradas em nós de dados específicos, podem causar desequilíbrio na utilização de CPU, além de desequilíbrio no uso de memória e largura de banda.

  • Conexão de curta duração: A criação e o encerramento frequentes de conexões consomem recursos significativos de CPU no gerenciamento de conexões, em vez de no processamento de dados.

  • AOF: A persistência por arquivo somente de anexação (AOF) é ativada por padrão. Quando uma instância está sob carga elevada, o I/O de disco gerado pelo processo AOF pode aumentar a utilização de CPU e a latência dos comandos.

Cenários de alta utilização de CPU

A alta utilização de CPU geralmente se manifesta em três cenários comuns:

Adote as medidas apropriadas para reduzir a utilização de CPU de acordo com o seu cenário.

Pico repentino na utilização de CPU

Se a utilização geral de CPU da sua instância apresentar picos, siga estas etapas para investigar e resolver o problema.

Identificar e desativar comandos intensivos de CPU

Procedimento

  1. Use o recurso de monitoramento de desempenho para identificar o intervalo de tempo específico em que a utilização de CPU estava elevada. Para mais informações, consulte Ver dados de monitoramento de desempenho.

  2. Use as ferramentas a seguir para identificar comandos intensivos de CPU:

    • O recurso latency insights registra a latência de todos os comandos e eventos personalizados. Utilize-o para encontrar comandos com alta latência durante um período específico em um nó específico.

    • O recurso slow query log registra comandos que excedem um tempo de execução especificado (20 ms por padrão). Utilize-o para localizar comandos de longa duração e intensivos de CPU.

Soluções

Otimizar para conexões de curta duração

Procedimento

  1. Use o recurso de monitoramento de desempenho para identificar o intervalo de tempo específico em que a utilização de CPU estava elevada. Para mais informações, consulte Ver dados de monitoramento de desempenho.

  2. Na página de monitoramento de desempenho, verifique a combinação de alta utilização de CPU, alto número de conexões e QPS abaixo do esperado. Esse padrão indica um problema com conexões de curta duração.

Soluções

Desativar o AOF

O AOF é ativado por padrão. Sob carga elevada, operações frequentes de AOF podem contribuir para a alta utilização de CPU.

Se os requisitos do seu negócio permitirem, considere desativar a persistência e agendar backups de dados em horários de baixo tráfego para minimizar o impacto.

Aviso

Se a sua instância for uma instância baseada em DRAM, não será possível restaurar dados a partir de um arquivo AOF após desativá-lo. Isso significa que o recurso de flashback de dados ficará indisponível. A única opção será restaurar dados de um conjunto de backup para uma nova instância. Prossiga com cautela.

Avaliar a capacidade do serviço

Se a utilização média de CPU permanecer elevada (acima de 70%) durante a operação normal após realizar as otimizações anteriores, sua instância provavelmente tem um gargalo de desempenho.

Primeiro, verifique padrões de acesso anormais, como comandos incomuns ou alto volume de requisições provenientes de um host de aplicação específico. Esses problemas devem ser tratados no nível da aplicação. Se todo o acesso for legítimo, a alta carga é resultado normal da sua carga de trabalho. Para garantir a operação estável, recomendamos fazer upgrade das especificações da instância ou migrar para uma arquitetura de cluster ou arquitetura de leitura/gravação separadas. Para mais informações, consulte Alterar as configurações de uma instância.

Nota

Para garantir a estabilidade do negócio, recomendamos adquirir uma instância com pagamento conforme o uso para realizar testes de carga e compatibilidade antes de fazer upgrade da instância de produção. A instância de teste pode ser liberada após a conclusão dos testes.

Desequilíbrio de utilização de CPU entre nós de dados

Se você estiver usando uma arquitetura de cluster ou uma arquitetura de leitura/gravação separadas, pode ocorrer que alguns nós de dados apresentem alta utilização de CPU enquanto outros têm utilização baixa. Siga estas etapas para investigar e resolver o problema.

Diagnosticar e otimizar hotkeys

Procedimento

  1. Use o recurso de monitoramento de desempenho para identificar o intervalo de tempo específico em que a utilização de CPU estava elevada. Para mais informações, consulte Ver dados de monitoramento de desempenho.

  2. Na página de histórico de Real-time Key Statistics, selecione o nó de dados com alta utilização de CPU, especifique o intervalo de tempo da Etapa 1 e clique em Search. Isso exibe as hotkeys durante o período de alta utilização de CPU.

Soluções

  • Divida a hotkey com base na lógica do seu negócio. Por exemplo, adicione um ID de usuário ou um intervalo de timestamp ao nome da chave.

  • Se um alto volume de requisições de leitura for a causa da hotkey, considere migrar a instância para uma arquitetura de leitura/gravação separadas para reduzir a pressão de leitura em cada nó de dados.

    Nota

    Em cenários com volumes de requisições extremamente elevados, uma arquitetura de leitura/gravação separadas pode introduzir latência de replicação inevitável, resultando na leitura de dados desatualizados. Por esse motivo, essa arquitetura pode não ser a solução ideal para cargas de trabalho com alta pressão de leitura e gravação que também exigem forte consistência de dados.

Identificar e desativar comandos intensivos de CPU

Procedimento

  1. Use o recurso de monitoramento de desempenho para identificar o intervalo de tempo específico em que a utilização de CPU estava elevada. Para mais informações, consulte Ver dados de monitoramento de desempenho.

  2. Use as ferramentas a seguir para identificar comandos intensivos de CPU:

    • O recurso latency insights registra a latência de todos os comandos e eventos personalizados. Utilize-o para encontrar comandos com alta latência durante um período específico em um nó específico.

    • O recurso slow query log registra comandos que excedem um tempo de execução especificado (20 ms por padrão). Utilize-o para localizar comandos de longa duração e intensivos de CPU.

Solução

Avalie e desative comandos de alto risco e intensivos de CPU, como FLUSHALL, KEYS e HGETALL. Para mais informações, consulte Desativar comandos de alto risco.

Diagnosticar e otimizar chaves grandes

Procedimento

  1. Use o recurso de monitoramento de desempenho para identificar o intervalo de tempo específico em que a utilização de CPU estava elevada. Para mais informações, consulte Ver dados de monitoramento de desempenho.

  2. Na página de análise de chaves offline, clique em Analyze Now. Selecione o nó de dados com alta utilização de CPU e clique em OK. Isso exibe as chaves grandes que existiam durante o período de alta utilização de CPU.

Solução

Com base nos requisitos do seu negócio, divida chaves grandes em chaves menores para distribuir a carga de requisições.

Desequilíbrio de utilização de CPU entre nós de proxy

Se você estiver usando uma arquitetura de cluster ou uma arquitetura de leitura/gravação separadas, pode ocorrer que alguns nós de proxy apresentem alta utilização de CPU enquanto outros têm utilização baixa. Siga estas etapas para investigar e resolver o problema.

Procedimento

Na aba Proxy Node da página Performance Trends, verifique se a utilização de conexões está balanceada entre os nós. Para mais informações, consulte Performance Trends.

Soluções

Execute uma das seguintes operações com base no balanceamento da utilização de conexões:

  • Se a utilização de conexões estiver balanceada: reinicie a aplicação cliente ou os nós de proxy para rebalancear as conexões. Para reiniciar um nó de proxy, consulte Reiniciar ou reconstruir nós de proxy.

  • Se a utilização de conexões estiver desbalanceada: esse desequilíbrio geralmente é causado por operações pipeline ou batch em grande escala. Reduza o tamanho dessas operações, por exemplo, dividindo uma operação batch grande em várias menores.