Partilhar via


Solucionar problemas do servidor Redis gerenciado do Azure (visualização)

Esta seção discute a solução de problemas causados por condições em um servidor Redis Gerenciado do Azure (visualização) ou em qualquer uma das máquinas virtuais que o hospedam.

Nota

Várias das etapas de solução de problemas neste guia incluem instruções para executar comandos Redis e monitorar várias métricas de desempenho. Para obter mais informações e instruções, consulte os artigos na seção Informações adicionais.

CPU elevada

CPU alta significa que o servidor Redis está ocupado e incapaz de acompanhar as solicitações, levando a tempos limites. Verifique a métrica da CPU no cache selecionando Monitoramento no menu Recurso à esquerda. Você vê o gráfico da CPU no painel de trabalho em Insights. Ou adicione um conjunto de métricas à CPU em Métricas.

A seguir estão algumas opções a serem consideradas para CPU alta.

Aumente a escala ou mude para uma camada de desempenho mais alta

Para obter maior desempenho, considere dimensionar até um tamanho de cache maior com mais núcleos de CPU. Para obter mais informações, consulte Camadas de desempenho.

Mudanças rápidas no número de conexões de clientes

Para obter mais informações, consulte Evitar picos de conexão do cliente.

Comandos caros ou de longa duração

Para obter mais informações, consulte Comandos de execução longa.

Dimensionamento

As operações de dimensionamento consomem muita CPU e memória, pois podem envolver a movimentação de dados entre nós e a alteração da topologia do cluster. Para obter mais informações, consulte Dimensionamento.

Manutenção de servidores

Se o seu Azure Managed Redis passou por um failover, todas as conexões de cliente do nó que ficou inativo são transferidas para o nó que ainda está em execução. A CPU pode aumentar por causa do aumento das conexões. Você pode tentar reinicializar seus aplicativos cliente para que todas as conexões de cliente sejam recriadas e redistribuídas entre os dois nós.

Elevada utilização da memória

A pressão da memória no servidor pode levar a vários problemas de desempenho que atrasam o processamento dos pedidos. Quando a pressão da memória ocorre, o sistema coloca os dados no disco, o que faz com que o sistema abrande significativamente.

Aqui estão algumas causas possíveis da pressão da memória:

  • O cache é preenchido com dados perto de sua capacidade máxima
  • O servidor Redis está vendo alta fragmentação de memória

É provável que a fragmentação seja causada quando um padrão de carga está armazenando dados com alta variação de tamanho. Por exemplo, a fragmentação pode acontecer quando os dados são distribuídos em 1 KB e 1 MB de tamanho. Quando uma chave de 1 KB é excluída da memória existente, uma chave de 1 MB não pode caber nela, causando fragmentação. Da mesma forma, se a chave de 1 MB for excluída e a chave de 1,5 MB for adicionada, ela não poderá caber na memória recuperada existente. Isso causa memória livre não utilizada e resulta em mais fragmentação.

Se o valor for superior a used_memory_rss 1,5 vezes a used_memory métrica, há fragmentação na memória. A fragmentação pode causar problemas quando:

  1. O uso de memória está próximo ao limite máximo de memória para o cache, ou
  2. UsedMemory_RSS é maior do que o limite máximo de memória, potencialmente resultando em falha de página na memória.

Se um cache estiver fragmentado e estiver sendo executado sob alta pressão de memória, o sistema fará um failover para tentar recuperar a memória RSS (Resident set Size).

Redis expõe duas estatísticas, used_memory e used_memory_rss, através do comando INFO que pode ajudá-lo a identificar esse problema. Você pode visualizar essas métricas usando o portal.

Há várias alterações possíveis que pode fazer para ajudar a manter um bom estado de funcionamento da utilização da memória:

  • Configure uma política de memória e defina tempos de expiração em suas chaves. Esta política pode não ser suficiente se tiver fragmentação.
  • Crie alertas sobre métricas, por exemplo, sobre a memória utilizada, para ser notificado antecipadamente sobre potenciais impactos.
  • Dimensione para um tamanho de cache maior com mais capacidade de memória. Para obter mais informações, consulte Perguntas frequentes sobre planejamento do Redis gerenciado do Azure.

Para obter recomendações sobre gerenciamento de memória, consulte Práticas recomendadas para gerenciamento de memória.

Comandos de execução prolongada

Para obter mais informações, consulte Comandos de execução longa.

Limitação da largura de banda do lado do servidor

Para obter mais informações, consulte Limitação de largura de banda de rede.

Informações adicionais