Resolver problemas do servidor da Cache do Azure para Redis

Esta secção aborda problemas de resolução de problemas causados por condições num servidor Cache do Azure para Redis ou em qualquer uma das máquinas virtuais que o alojam.

Nota

Vários dos passos de resolução de problemas neste guia incluem instruções para executar comandos Redis e monitorizar várias métricas de desempenho. Para obter mais informações e instruções, consulte os artigos na secção Informações adicionais .

Carga do servidor elevada

Uma carga elevada no servidor significa que o servidor Redis está ocupado e não consegue dar resposta a pedidos, o que provoca os tempos limite excedidos. Verifique a métrica Carga do Servidor na cache ao selecionar Monitorização no menu Recurso à esquerda. Verá o Gráfico de Carga do Servidor no painel de trabalho em Informações. Em alternativa, adicione um conjunto de métricas à Carga do Servidor em Métricas.

Seguem-se algumas opções a considerar para uma carga elevada do servidor.

Aumentar verticalmente ou aumentar horizontalmente

Aumente horizontalmente para adicionar mais partições horizontais, para que a carga seja distribuída por vários processos de Redis. Além disso, considere aumentar verticalmente para um tamanho de cache maior com mais núcleos de CPU. Para obter mais informações, veja Cache do Azure para Redis FAQs de planeamento.

Alterações rápidas no número de ligações de cliente

Para obter mais informações, veja Evitar picos de ligação de cliente.

Comandos de execução prolongada ou dispendiosos

Esta secção foi movida. Para obter mais informações, veja Comandos de execução prolongada.

Dimensionamento

As operações de dimensionamento são intensivas na CPU e na memória, pois podem envolver a movimentação de dados em torno dos nós e a alteração da topologia do cluster. Para obter mais informações, veja Dimensionamento.

Manutenção de servidores

Se o Cache do Azure para Redis tiver sido submetido a uma ativação pós-falha, todas as ligações de cliente do nó que foi para baixo serão transferidas para o nó que ainda está em execução. A carga do servidor pode aumentar devido ao aumento das ligações. Pode tentar reiniciar as aplicações cliente para que todas as ligações de cliente fiquem 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.

Eis algumas possíveis causas de pressão da memória:

  • A cache é preenchida com dados perto da capacidade máxima
  • O servidor Redis está a ver uma fragmentação de memória elevada

É provável que a fragmentação seja causada quando um padrão de carga está a armazenar dados com elevada variação de tamanho. Por exemplo, a fragmentação pode ocorrer quando os dados são distribuídos por 1 KB e 1 MB de tamanho. Quando uma chave de 1 KB é eliminada da memória existente, uma chave de 1 MB não cabe na mesma causando fragmentação. Da mesma forma, se a chave de 1 MB for eliminada e a chave de 1,5 MB for adicionada, não poderá caber na memória recuperada existente. Isto causa memória livre não utilizada e resulta numa maior fragmentação.

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

  1. A utilização da memória está próxima do limite máximo de memória da cache ou
  2. UsedMemory_RSS é superior ao limite máximo de Memória, o que pode resultar em falhas de página na memória.

Se uma cache estiver fragmentada e estiver em execução sob pressão de memória elevada, o sistema efetua uma ativação pós-falha para tentar recuperar a memória do Tamanho do Conjunto Residente (RSS).

O Redis expõe duas estatísticas used_memory e used_memory_rss, através do comando INFO que o pode ajudar a identificar este problema. Pode ver estas métricas com o portal.

Confirme se os maxmemory-reserved valores e maxfragmentationmemory-reserved são definidos adequadamente.

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:

Para obter recomendações sobre a gestão de memória, veja Melhores práticas para a gestão da memória.

Comandos de execução prolongada

Esta secção foi movida. Para obter mais informações, veja Comandos de execução prolongada.

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

Esta secção foi movida. Para obter mais informações, veja Limitação da largura de banda de rede.

Informações adicionais