Nesta página, encontra respostas às seguintes perguntas frequentes (FAQ) sobre a utilização do Memorystore for Valkey:
- Que quantidade de CPU e memória recomendamos que use?
- Como monitoriza a quantidade de CPU e memória que usa?
- Como define alertas para monitorizar a utilização de CPU e memória?
- Quantas ligações da sua aplicação cliente recomendamos que mantenha abertas?
- Como monitoriza o número de ligações de clientes para a sua instância?
- O que faz se tiver demasiadas associações de clientes?
- Suponhamos que tem um evento futuro que vai aumentar o tráfego para a sua empresa. O que vai fazer?
- Como é que os seus dados são protegidos?
- Quais são as práticas recomendadas para o código do cliente?
- Quais são as suas opções de resiliência de dados?
- Como pode conseguir o melhor desempenho para a sua instância?
- Como pode otimizar a elevada disponibilidade para a sua instância?
Que quantidade de memória e CPU recomendamos que use?
Recomendamos que a utilização de memória não exceda 80%. Também recomendamos que execute a uma utilização média da CPU de 60%. Como resultado, pode tolerar a perda de uma única zona de disponibilidade, que corresponde a aproximadamente um terço da sua capacidade total. Para este cenário, a utilização média da CPU nos nós restantes é de aproximadamente 90%.
Como monitoriza a quantidade de CPU e memória que usa?
Para monitorizar a utilização da CPU do nó principal do Memorystore for Valkey e de qualquer uma das respetivas réplicas de leitura, use a métrica /instance/cpu/maximum_utilization
. Esta métrica mede a utilização máxima da CPU em todos os nós na sua instância, de 0,0 (0%) a 1,0 (100%). Para mais informações, consulte as práticas recomendadas de utilização da CPU.
Para monitorizar a memória que o nó principal do Memorystore for Valkey e as respetivas réplicas de leitura usam, use a métrica /instance/node/memory/utilization
. Esta métrica mede a utilização de memória de um único nó na sua instância, de 0,0 (0%) a 1,0 (100%).
Como define alertas para monitorizar a utilização de memória e CPU?
Para definir alertas de monitorização para a utilização de memória e CPU, use o Cloud Monitoring. Por exemplo, pode definir um alerta para receber uma notificação se a métrica /instance/memory/maximum_utilization
exceder um limite que definiu. Para mais informações, consulte o artigo Defina um alerta de monitorização para a utilização de memória.
Quantas ligações da sua aplicação cliente recomendamos que mantenha abertas?
Recomendamos que use referências para o seu cliente determinar a definição ideal. O ponto de partida recomendado de cada cliente é uma ligação por nó de chave de validação. Para mais informações, consulte o artigo Evite a sobrecarga de ligações no Valkey.
Também recomendamos que ative o processamento em pipeline para o cliente, para que este possa processar mais pedidos e processá-los mais rapidamente.
Como monitoriza o número de ligações de clientes para a sua instância?
Para monitorizar o número de ligações de clientes que usa, use a métrica /instance/node/clients/connected_clients
. Esta métrica mede o número de clientes que estão ligados a cada nó da sua instância.
O que faz se tiver demasiadas ligações de clientes?
O número máximo de associações de clientes, que pode encontrar através da métrica /instance/clients/maximum_connected_clients
, tem de ser inferior ao valor associado ao parâmetro maxclients
. Se os valores forem iguais, faça o seguinte:
- Pare quaisquer ligações com fugas ou desnecessárias através do comando
client kill
. - Verifique o tipo de nó da sua instância. Se o número máximo de clientes para o tipo de nó for igual ao valor máximo que o Memorystore para Valkey suporta para o tipo de nó, altere o tamanho do conjunto de ligações do cliente ou use um tipo de nó maior. Para mais informações, consulte o artigo Evite a sobrecarga de ligações no Valkey.
Suponhamos que tem um evento futuro que vai gerar um pico de tráfego para a sua empresa. O que é que vai fazer?
Pode configurar o Memorystore for Valkey de acordo com as necessidades da sua empresa. Neste cenário, pode aumentar a capacidade da sua instância das seguintes formas:
- Pode adicionar fragmentos à instância. Isto dá à instância uma maior utilização da CPU para processar um volume maior de dados ou tráfego. A capacidade da sua instância é determinada pelo número de fragmentos na instância. Ao adicionar fragmentos, a sua aplicação pode processar um aumento da procura sem degradação do desempenho.
- Pode alterar o tipo de nó para um tipo de nó maior. Isto dá à instância mais memória. A capacidade da instância é determinada pelo tipo de nó da instância. Por exemplo, pode alterar o tipo de nó de um tipo de nó
standard-small
para um tipo de nóhighmem-medium
.
Recomendamos que aumente a capacidade da sua instância vários dias antes do evento. Além disso, para ajudar a dimensionar a capacidade da sua instância e aumentar a velocidade e a fiabilidade do dimensionamento da instância, dimensione-a durante períodos de tráfego reduzido. Para saber como monitorizar o tráfego de instâncias, consulte o artigo Monitorizar instâncias.
Como é que a Google protege os seus dados?
Para proteger os seus dados, o Memorystore for Valkey oferece-lhe os seguintes mecanismos:
- Autenticação da gestão de identidade e de acesso (IAM): use o IAM para ajudar a gerir o acesso ao início de sessão dos seus utilizadores e contas de serviço. A autenticação baseada na IAM integra-se com a AUTH do Valkey, o que lhe permite rodar as credenciais (tokens da IAM) de forma integrada sem depender de palavras-passe estáticas.
- Encriptação em trânsito: encriptar todo o tráfego do Valkey através do protocolo Transport Layer Security (TLS). Quando a encriptação em trânsito está ativada, os clientes do Valkey comunicam através de uma ligação segura. Os clientes do Valkey que não estão configurados para TLS são bloqueados.
Quais são as práticas recomendadas para o código do cliente?
Para usar o código do cliente com o Memorystore for Valkey de forma ideal, recomendamos que use as seguintes práticas recomendadas:
Para ligar a sua aplicação a uma instância do Memorystore for Valkey com o modo de cluster ativado, use um cliente que recomendamos, como valkey-go, iovalkey, valkey-py ou Valkey GLIDE.
Se usar um cliente diferente, certifique-se de que usa um cliente Valkey com reconhecimento de clusters que mantém um mapa de slots de hash para os nós correspondentes na instância. Como resultado, os pedidos podem ser enviados para os nós corretos. Isto evita a sobrecarga de desempenho causada por redirecionamentos. Para mais informações, consulte as práticas recomendadas do cliente Valkey.
Recomendamos que defina os intervalos de tempo limite de ligação para cinco segundos e os intervalos de tempo limite de pedido para 10 segundos. Se definir os seus limites de tempo para intervalos mais pequenos, o Memorystore for Valkey pode sofrer tempestades de reconexão, o que pode pôr o serviço em risco.
Use a retirada exponencial como uma estratégia de processamento de erros padrão para aplicações de rede quando o cliente repete um pedido falhado periodicamente com intervalos de tempo cada vez maiores entre os pedidos.
Use os nossos exemplos de código da biblioteca de cliente. Por exemplo, os valores predefinidos do cliente valkey-go cumprem todas as nossas recomendações, pelo que não tem de configurar nada para este cliente.
Quais são as suas opções de resiliência de dados?
O Memorystore for Valkey oferece-lhe as seguintes funcionalidades para a resiliência dos dados:
Alta disponibilidade: o Memorystore for Valkey oferece capacidade redundante em nós de réplica. Se ocorrer uma falha, o Memorystore for Valkey pode usar esta capacidade para funcionar sem tempo de inatividade.
Persistência: quando o seu ambiente falha inesperadamente, o Memorystore for Valkey restaura o ambiente automaticamente. Isto é conhecido como persistência.
O Memorystore for Valkey oferece o seguinte tipo de persistência:
Persistência da base de dados Redis (RDB): proteja os seus dados guardando instantâneos dos mesmos no armazenamento duradouro. Pode escolher a frequência destes instantâneos selecionando um intervalo de instantâneos. Se ocorrerem falhas de nós, pode recuperar os dados mesmo quando a ativação pós-falha não é possível.
Persistência de ficheiros apenas de anexação (AOF): use este tipo de persistência quando quiser dar prioridade à durabilidade dos dados. A persistência AOF armazena dados de forma duradoura ao registar todos os comandos de escrita num ficheiro de registo denominado ficheiro AOF. Se ocorrer uma falha ou um reinício do sistema, o servidor repete os comandos do ficheiro AOF sequencialmente para restaurar os seus dados.
Cópias de segurança: restaure manualmente as suas instâncias do Memorystore for Valkey para um ponto específico no tempo. Além disso, pode usar cópias de segurança para exportar e analisar dados.
As cópias de segurança são úteis para os seguintes cenários:
- Recuperação de desastres: use cópias de segurança como parte de um plano de recuperação de desastres. Se ocorrer um desastre, pode restaurar os seus dados numa nova instância do Memorystore for Valkey.
- Migração de dados: migre dados entre diferentes instâncias do Memorystore for Valkey. Pode consolidar os dados ou movê-los para uma região diferente. Também pode restaurar cópias de segurança de instâncias do Memorystore for Valkey.
- Partilhe dados: partilhe dados entre diferentes equipas ou aplicações. Isto permite a colaboração, a análise de dados offline e a troca de dados.
- Conformidade: crie cópias de segurança periódicas dos dados da cache para fins de conformidade.
- Agende cópias de segurança: além de criar uma cópia de segurança a pedido, pode configurar um agendamento de cópias de segurança para uma instância. Como resultado, o Memorystore for Valkey inicia cópias de segurança periódicas para a instância.
Replicação entre regiões: crie instâncias secundárias a partir de uma instância principal para disponibilizar a sua instância para leituras em diferentes regiões. As instâncias secundárias também oferecem redundância para cenários de recuperação de desastres em caso de falhas regionais.
A replicação entre regiões no Memorystore for Valkey oferece as seguintes vantagens:
- Recuperação de desastres: se a região da instância principal ficar indisponível, pode desanexar ou mudar para uma instância secundária noutra região para atender a pedidos de leitura e escrita. As instâncias secundárias atendem a pedidos de leitura sem emitir um comando de comutação ou desanexação.
- Dados distribuídos geograficamente: a distribuição geográfica dos dados aproxima-os de si e diminui a latência de leitura.
- Equilíbrio de carga geográfico para tráfego de leitura: se ocorrerem ligações lentas ou sobrecarregadas numa região, pode encaminhar o tráfego para outra região.
Como pode conseguir o melhor desempenho para a sua instância?
Para otimizar o desempenho da sua instância do Memorystore for Valkey, faça o seguinte:
- Siga as práticas recomendadas para a gestão de memória e a utilização da CPU, uma vez que estas práticas resultam no melhor desempenho para a sua instância.
- Use registos de auditoria para monitorizar o acesso à sua instância. Como resultado, pode determinar se existem problemas associados à atividade do administrador para a instância (o
Admin Activity
registo de auditoria) ou aos utilizadores que acedem aos dados da instância (oData Access
registo de auditoria). - Use réplicas de leitura. No Memorystore for Valkey, a replicação é assíncrona. Por conseguinte, os dados no nó principal não aparecem imediatamente nas réplicas. Se puder processar dados ligeiramente desatualizados, use réplicas de leitura. Isto oferece-lhe melhorias significativas na taxa de transferência de leitura e na latência.
Evite usar comandos Valkey que exigem muitos recursos. A utilização destes comandos pode resultar nos seguintes problemas de desempenho:
- Latência elevada e limites de tempo do cliente
- Pressão de memória causada por comandos que aumentam a utilização de memória
- Perda de dados durante a replicação e a sincronização de nós porque a thread principal do Valkey está bloqueada
- Verificações de funcionamento, observabilidade e replicação com recursos insuficientes
Em vez de usar estes comandos, use comandos mais eficientes em termos de recursos. Por exemplo, para analisar todo o seu espaço de chaves, não use o comando
KEYS
. Em alternativa, useSCAN
.Para mais informações sobre os comandos do Valkey que consomem muitos recursos e as respetivas alternativas eficientes em termos de recursos, consulte o artigo Comandos do Valkey que consomem muitos recursos.
Se as necessidades da sua empresa lhe permitirem definir um prazo de validade para os seus dados, recomendamos que o faça. A definição de um prazo de validade reduz o consumo de memória.
Atualize a versão da sua instância do Memorystore for Valkey para a versão mais recente da instância. As versões de software mais recentes têm melhorias de fiabilidade e desempenho.
Modifique o valor do parâmetro
maxmemory-policy
. Este parâmetro especifica o comportamento que o Valkey segue quando os dados da instância atingem omaxmemory
limite.Quando a memória da instância está cheia e chega uma nova gravação, o Valkey remove chaves para criar espaço para a gravação com base na política da sua instância.
maxmemory
Se o valor do parâmetro
maxmemory-policy
estiver definido comonoeviction
, o Memorystore for Valkey devolve um erro quando a sua instância atinge a memória máxima. No entanto, o Memorystore for Valkey não substitui nem remove dados. Para melhorar a disponibilidade da sua instância, altere o valor do parâmetromaxmemory-policy
para que o Memorystore for Valkey possa remover chaves.Para mais informações sobre os diferentes valores que pode definir para o parâmetro
maxmemory-policy
, consulte o artigo Políticas de maxmemory. Para mais informações sobre a atualização deste parâmetro, consulte o artigo Atualize um parâmetro de configuração.Ajuste a sua instância do Memorystore for Valkey para que tenha a taxa de acertos da cache que quer. Isto ajuda a definir o tamanho certo da base de dados para que possa processar a percentagem adequada de resultados.
Para otimizar uma instância, faça o seguinte:
- Use as métricas de monitorização
total_keyspace_hits_count
etotal_keyspace_misses_count
para determinar o número total de pesquisas bem-sucedidas de chaves para a instância e o número total de pesquisas falhadas de chaves para a instância, respetivamente. - Divida o número total de acertos pelo número total de acertos e falhas
(ou seja, acertos/(acertos + falhas)). O quociente é a sua relação de resultados. - Para ajustar a instância de modo a obter a taxa de acertos adequada para si, dimensione a instância. Pode aumentar ou diminuir o número de fragmentos, ou aumentar ou diminuir o tipo de nó. Para mais informações, consulte o artigo Acerca do ajuste da capacidade da instância.
Aumentar a taxa de acertos melhora a latência e o débito do seu sistema. Encontre o equilíbrio adequado para os seus objetivos de desempenho, expansão e custos.
- Use as métricas de monitorização
Por predefinição, recomendamos que execute testes de referência de desempenho em relação à sua instância para determinar se mais ligações aumentam o desempenho sem saturação de ligações. O ponto de partida recomendado é configurar o seu cliente para abrir uma ligação a cada nó do Valkey.
Ative o processamento em pipeline para o seu cliente, de modo que este possa processar mais pedidos e processá-los mais rapidamente. Para configurar o processamento em pipeline, use a biblioteca do cliente. Para mais informações, consulte a documentação associada a esta biblioteca.
Como pode otimizar a elevada disponibilidade para a sua instância?
Recomendamos que crie instâncias altamente disponíveis de várias zonas em vez de instâncias de zona única devido à melhor fiabilidade que oferecem.
Se criar uma instância de alta disponibilidade, recomendamos que use a métrica /instance/node/replication/offset
. Ao usar esta métrica, pode monitorizar o desvio de replicação (em bytes) de um único nó na sua instância. O desvio de replicação é o número de bytes que o Memorystore for Valkey não replicou entre o nó principal e as réplicas de leitura.