Como soluciono problemas com o aumento do uso da CPU em meu cluster autoprojetado do ElastiCache for Redis?
5 minuto de leitura
0
Quero solucionar o aumento do uso da CPU em meu cluster autoprojetado do Amazon ElastiCache for Redis.
Breve descrição
A seguir estão as métricas de CPU do Amazon CloudWatch para o ElastiCache for Redis:
- EngineCPUUtilization: Reporta a utilização da CPU para o thread do mecanismo Redis. O Redis é de thread único. É uma prática recomendada monitorar a métrica EngineCPUUtilization para nós com quatro ou mais vCPUs.
- CPUUtilization: Indica a porcentagem de utilização da CPU para o host. Para nós menores com duas ou menos vCPUs, use a métrica CPUUtilization para monitorar a workload do cluster.
Solução
Solucionar problemas de alta EngineCPUUtilization
Para solucionar problemas de EngineCPUUtilization alta, verifique o seguinte:
- Comandos de longa duração que consomem muito tempo de CPU: Comandos com alta complexidade de tempo, como keys, hkeys e hgetall, consomem muito tempo de CPU. Para verificar a complexidade de tempo e as sugestões de desempenho de um comando, consulte Comandos no site do Redis. Se você usar scripts Lua, todas as atividades do servidor serão bloqueadas durante runtime e qualquer EngineCPUUtilization aumentará. Os scripts Lua são usados pelos comandos EVAL e EVALSHA do Redis. Para obter mais informações, consulte Criação de scripts com Lua, EVAL e EVALSHA no site do Redis. Para verificar se há comandos de longa duração ou scripts Lua, use o Redis SLOWLOG.
- Um grande número de solicitações: Verifique as estatísticas dos comandos para identificar picos de comando ou aumento da latência. Para verificar as estatísticas dos comandos, use as métricas do CloudWatch, como GetTypeCmds ou HashBasedCmds. Ou use o comando INFO do Redis. Para obter mais informações, consulte INFO no site do Redis. Se você tiver um grande número de solicitações e a workload do seu aplicativo estiver conforme o esperado, escale o cluster.
- Backup e replicação: Se o backup ou a replicação tiverem ocorrido, verifique a métrica SaveInProgress. Essa métrica binária mostra 1 quando um salvamento em segundo plano (bifurcado ou sem bifurcação) está em andamento e mostra 0 quando um salvamento em segundo plano não está em andamento. Verifique se há memória suficiente para criar um snapshot do Redis.
- Alto número de NewConnections: Um grande número de novas solicitações de conexão de clientes em um curto período de tempo pode causar um aumento de EngineCPUUtilization. Para obter as melhores práticas ao lidar com um grande número de conexões, consulte Práticas recomendadas: Clientes Redis e Amazon ElastiCache para Redis. Para o Redis 6.2 e versões mais recentes, melhorias de desempenho foram implementadas. Para obter mais informações, consulte ElastiCache for Redis 6.2 (aprimorado).
- Alto número de remoção de chaves: O Redis remove as chaves com base no parâmetro maxmemory-policy. As remoções ocorrem quando o cache não tem memória suficiente para armazenar novos dados. Se o volume de remoção for alto, o Redis usará mais recursos da CPU para despejar as chaves e a EngineCPUUtilization aumentará. Para monitorar o volume de remoções, use a métrica Evictions do CloudWatch. Se o volume de remoção for alto, use um tipo de nó maior ou adicione mais nós para escalar seu cluster.
- Alto número de recuperações: Para liberar memória, o Redis coleta amostras e exclui todas as chaves que atingiram a expiração do tempo limite. Esse processo é chamado de recuperação. Se houver um grande número de expirações, a CPUUtilization e EngineCPUUtilization poderão aumentar. Para monitorar o número de eventos de expiração de chaves, use a métrica do CloudWatch **Reclaimed .**É uma prática recomendada garantir que muitas chaves não estejam expirando ao mesmo tempo. Para garantir que suas chaves expirem em janelas de tempo diferentes, use o comando EXPIREAT ou defina valores TTL diferentes para suas chaves. Para obter mais informações, consulte EXPIREAT no site do Redis.
Solucionar problemas de CPUUtilization alta
Para solucionar problemas CPUUtilization de alta, verifique o seguinte:
- Alto tráfego de rede ou número de conexões: O alto tráfego ou a conexão de rede podem levar ao aumento da CPUUtilization no Amazon ElastiCache Redis. Para verificar se há alto tráfego ou conexões de rede, verifique as métricas NewConnections, NetworkBytesIn, NetworkBytesOut, NetworkPacketSin e NetworkPacketsOut do CloudWatch.
- E/S assíncrona que é tratada por outros threads: Para os tipos de nós suportados, a E/S aprimorada foi projetada para lidar com a E/S de rede em threads dedicados. Além disso, para o Redis versão 6.2 e mais recente, o descarregamento de TLS é suportado e permite que o ElastiCache for Redis execute operações TLS nos threads de E/S. As operações TLS usam o núcleo extra da CPU disponível nos nós, e esse uso extra da CPU pode resultar em maior **CPUUtilization.**Para obter mais informações, consulte Aumento de desempenho do Amazon ElastiCache com instâncias M5 e R5 do Amazon EC2.
- Manutenção gerenciada contínua e atualizações de serviços: A manutenção e as atualizações de serviços exigem capacidade computacional e podem resultar em um aumento da CPUUtilization. Verifique a janela de manutenção para ver se o aumento na CPUUtilization ocorre ao mesmo tempo. É uma prática recomendada definir a janela de manutenção para um período de baixo uso. Para obter mais informações, consulte a página de ajuda sobre manutenção gerenciada e atualizações de serviços do Amazon ElastiCache.
- Alta paginação e operações: Memória insuficiente no nó pode fazer com que o kernel perca a memória paraswap. Essa ação pode levar à degradação do desempenho. Se a paginação for excessiva, a CPUUtilization poderá aumentar. Além disso, se a carga no nó for alta quando ocorrerem operações como backup ou operações de escalabilidade, a CPUUtilization poderá aumentar. Para obter mais informações, consulte Práticas recomendadas de monitoramento com o Amazon ElastiCache for Redis usando o Amazon CloudWatch.
AWS OFICIALAtualizada há 6 meses
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 6 meses