Esta página fornece orientações sobre a utilização ideal do Memorystore para Redis. Esta página também indica potenciais problemas a evitar.
Para ver uma lista de cenários de resolução de problemas, consulte o artigo Resolução de problemas.
Exportação de RDB
Quando exportar uma cópia de segurança RDB, siga estas orientações:
- Exportar durante um período de baixa taxa de gravação.
- Se exportar durante um período de elevada taxa de gravação, reduza temporariamente
maxmemorya configuração para 50% da capacidade da instância para fornecer uma sobrecarga suficiente para uma operação bem-sucedida.
Operações que consomem muitos recursos
Para instâncias do Redis de nível padrão, as seguintes operações usam memória adicional durante a operação:
A atualização de versão, o dimensionamento e a comutação manual por falha usam memória adicional (para instâncias de nível Standard) devido à replicação. Estas operações seguem o processo de replicação descrito em Comportamento da atualização da instância do nível padrão.
As operações de importação e exportação requerem memória adicional devido ao processo Redis ramificado e à gestão de dados de cópia na gravação associados a estas operações.
Para mitigar os inconvenientes das operações com utilização intensiva de recursos, deve:
- Diminua a configuração maxmemory para 80% da capacidade da instância durante a operação. Isto oferece uma sobrecarga suficiente para uma operação bem-sucedida.
- Monitorize a métrica da taxa de utilização da memória do sistema e certifique-se de que esta métrica está abaixo de 80% antes de executar uma destas operações.
- Execute estas operações durante períodos de tráfego de instâncias baixo (como durante a noite ou ao fim de semana, etc.).
- Tenha uma lógica de repetição com retirada exponencial em vigor antes de executar estas operações.
Operações e cenários que requerem uma nova tentativa de ligação
As seguintes operações e cenários interrompem a ligação de rede entre a sua rede e a instância do Redis:
- Atualização da versão
- Aumentar/diminuir a escala
- A importar
- Comutação por falha manual
- Manutenção do sistema
- Rotação da autoridade de certificação para instâncias do Redis com a encriptação em trânsito ativada
- Failover de emergência
Estas operações modificam a sua instância, o que requer uma interrupção temporária da ligação. Tem de ter uma lógica de repetição com recuo exponencial antes de executar estas operações para que a sua aplicação se volte a ligar automaticamente e continue a funcionar normalmente.
Manutenção de rotina
As instâncias do Memorystore for Redis são submetidas a manutenção periodicamente. Para mais detalhes, consulte a política de manutenção do Memorystore para Redis.
Implemente as seguintes práticas recomendadas para se preparar para a manutenção de rotina:
- Defina um período de manutenção para quando as atualizações de manutenção podem ocorrer.
- Agende períodos de manutenção para horas de tráfego de instâncias baixo e sobrecarga de memória suficiente. Para mais informações, consulte o artigo Impactos das atualizações de manutenção.
- Ative as notificações de períodos de manutenção para receber alertas sobre a manutenção futura.
- Ter uma lógica de repetição com retirada exponencial em vigor.
- Para instâncias do nível Standard, pode simular um evento de manutenção através da transferência manual de responsabilidades para ver como a transferência de responsabilidades causada pela manutenção afeta a sua aplicação.
- Para instâncias de nível básico, pode simular o impacto de uma atualização de manutenção dimensionando temporariamente a instância para um tamanho maior. Depois de observar o impacto, pode reduzir o tamanho para o original.
Gestão de memória
A gestão de memória pode ser um desafio devido à conhecida fragmentação de memória que ocorre com o Redis de código aberto. Recomendamos que diminua a configuração da instância para ter margem em caso de pressão de memória elevada.maxmemory
A melhor forma de monitorizar a pressão de memória na sua instância do Memorystore é usando a métrica Rácio de utilização da memória do sistema. Para ver um guia mais detalhado sobre como gerir a memória do Memorystore for Redis, consulte as práticas recomendadas de gestão de memória.
Gerir ligações inativas
Ao longo do tempo, pode ver o número de ligações à sua instância do Memorystore aumentar se as ligações não estiverem a ser terminadas corretamente. Isto pode ter implicações negativas no desempenho, especialmente se estiver a usar a encriptação em trânsito, que impõe limites máximos de ligações com base no seu nível de capacidade. Para mitigar esta situação, recomendamos que use o
timeout parâmetro de configuração do Redis
que lhe permite definir o número de segundos antes de as ligações de clientes inativos serem
terminadas automaticamente.
Nomes dos recursos da Transparência de acesso
Os dados confidenciais não devem ser armazenados em nomes de recursos do Memorystore para Redis. Por nomes de recursos, referimo-nos aos nomes das instâncias do Memorystore para Redis e aos metadados das instâncias, como etiquetas. Não é garantido que os dados armazenados em nomes de recursos estejam protegidos pela Google Cloud transparência de acesso e podem entrar em conflito com os requisitos de conformidade da transparência de acesso da sua organização.
Conetor do Acesso a VPC sem servidor necessário para alguns ambientes sem servidor
Alguns ambientes sem servidor requerem um conetor de acesso a VPC sem servidor para estabelecer ligação ao Memorystore para Redis. Configure o conetor do Acesso a VPC sem servidor para o seu projeto se quiser estabelecer ligação através de um destes ambientes.
Redes
Recomendamos que use o modo de ligação de acesso a serviços privados. O Memorystore for Redis usa dois modos de ligação: acesso a serviços privados e intercâmbio direto. O modo de ligação de acesso a serviços privados simplifica a gestão do intervalo de IP e permite-lhe usar a VPC partilhada, se quiser.
Depois de criar uma instância, não é possível alterar o modo de ligação.
Para mais detalhes, consulte a secção Redes.
Monitorização e alertas
Recomendamos a utilização da monitorização e dos alertas porque lhe dão sinais importantes sobre a utilização de memória da sua instância do Redis. Também lhe dão informações sobre a eficiência com que a sua instância do Redis responde aos pedidos de cache recebidos.
Deve configurar os seguintes alertas predefinidos:
- Definir um alerta do Cloud Monitoring para a utilização de memória
- Definir um alerta do Cloud Monitoring para a proporção de utilização da memória do sistema
Práticas recomendadas de utilização da CPU
A utilização inadequada de comandos Redis dispendiosos resulta numa latência elevada, falta de resposta ou problemas de conetividade. As instâncias do nível padrão oferecem alta disponibilidade durante a recuperação de desastres e dependem da replicação assíncrona entre os nós primários e de réplica. Se um dos nós tiver um processamento de comandos dispendioso que bloqueie a thread principal do Redis, a replicação pode ser afetada. Se o problema persistir e ocorrer uma indisponibilidade de localização, os dados mais recentes escritos na localização da indisponibilidade podem não estar disponíveis na outra localização.
Recomendamos que use o Cloud Monitoring
para definir alertas para a métrica Main Thread CPU Seconds
(redis.googleapis.com/stats/cpu_utilization_main_thread) para garantir que
a utilização da CPU não excede 0,8 segundos para o nó principal nem 0,5 segundos
para cada nó de réplica, quando a réplica é designada como uma réplica de leitura.
Se a sua instância do Redis exceder os valores recomendados, recomendamos que dimensione a instância para um nível de capacidade superior ou siga as instruções de resolução de problemas para evitar operações com utilização intensiva da CPU.