Nesta página, você encontra respostas para as seguintes perguntas frequentes sobre o uso do Memorystore para Valkey:
- Quanta CPU e memória recomendamos que você use?
- Como você monitora o uso de CPU e memória?
- Como configurar alertas para monitorar o uso de CPU e memória?
- Quantas conexões do aplicativo cliente recomendamos que você mantenha abertas?
- Como você monitora o número de conexões de clientes na sua instância?
- O que fazer se você tiver muitas conexões de cliente?
- Imagine que você tem um evento que vai aumentar o tráfego da sua empresa. O que você faz?
- Como vocês protegem meus dados?
- Quais são as práticas recomendadas para o código do cliente?
- Quais são suas opções de capacidade de recuperação de dados?
- Como conseguir a melhor performance para sua instância?
- Como otimizar a alta disponibilidade da sua instância?
Quanta memória e CPU recomendamos que você use?
Recomendamos que o uso de memória não exceda 80%. Também recomendamos que você execute com uma utilização média de CPU de 60%. Como resultado, você pode tolerar a perda de uma única zona de disponibilidade, que é aproximadamente um terço da sua capacidade total. Nesse cenário, o uso médio da CPU nos nós restantes é de aproximadamente 90%.
Como você monitora a quantidade de CPU e memória que usa?
Para monitorar o uso da CPU do nó principal do Memorystore para Valkey e
de qualquer uma das réplicas de leitura, use a métrica /instance/cpu/maximum_utilization
. Essa métrica mede o uso máximo da CPU em todos os nós da instância, de 0,0 (0%) a 1,0 (100%). Para mais informações, consulte Práticas recomendadas de uso da CPU.
Para monitorar a memória usada pelo nó principal do Memorystore para Valkey e pelas réplicas de leitura, use a métrica /instance/node/memory/utilization
. Essa métrica mede a utilização da memória de um único nó na sua instância, de 0,0 (0%) a 1,0 (100%).
Como você define alertas para monitorar o uso da CPU e da memória?
Para definir alertas de monitoramento para o uso de CPU e memória, use o Cloud Monitoring. Por exemplo, é possível definir um alerta para receber uma notificação se a métrica /instance/memory/maximum_utilization
exceder um limite definido. Para mais informações, consulte Configurar um alerta do Monitoring para uso de memória.
Quantas conexões do aplicativo cliente recomendamos que você mantenha abertas?
Recomendamos que você use comparativos de mercado para determinar a configuração ideal para seu cliente. O ponto de partida recomendado de cada cliente é uma conexão por nó do Valkey. Para mais informações, consulte Evitar sobrecarga de conexão no Valkey.
Também recomendamos que você ative o encadeamento para que seu cliente possa processar mais solicitações e fazer isso mais rápido.
Como você monitora o número de conexões de clientes na sua instância?
Para monitorar o número de conexões de cliente usadas, use a métrica /instance/node/clients/connected_clients
. Essa métrica mede o número de clientes conectados a cada nó da instância.
O que fazer se você tiver muitas conexões de clientes?
O número máximo de conexões de cliente, que pode ser encontrado usando a métrica /instance/clients/maximum_connected_clients
, precisa ser menor que o valor associado ao parâmetro maxclients
. Se os valores forem iguais, faça o seguinte:
- Interrompa conexões vazadas ou desnecessárias usando o 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 aceita para o tipo de nó, mude o tamanho do pool de conexões do cliente ou use um tipo de nó maior. Para mais informações, consulte Evitar sobrecarga de conexão no Valkey.
Suponha que você tenha um evento futuro que vai aumentar o tráfego da sua empresa. O que fazer?
É possível configurar a Memorystore para Valkey de acordo com as necessidades da sua empresa. Para esse cenário, é possível aumentar a capacidade da instância das seguintes maneiras:
- É possível adicionar fragmentos à instância. Isso dá à instância mais uso de CPU para lidar com um volume maior de dados ou tráfego. A capacidade da instância é determinada pelo número de fragmentos nela. Ao adicionar fragmentos, o aplicativo pode lidar com uma demanda maior sem degradação de desempenho.
- É possível mudar o tipo de nó para um maior. Isso dá mais memória à instância. A capacidade da instância é determinada pelo tipo de nó dela. Por exemplo, é possível mudar o tipo de nó de
standard-small
parahighmem-medium
.
Recomendamos que você aumente a capacidade da instância vários dias antes do evento. Além disso, para ajudar você a dimensionar a capacidade da instância e aumentar a velocidade e a confiabilidade do dimensionamento, faça isso durante períodos de baixo tráfego. Para saber como monitorar o tráfego da instância, consulte Monitorar instâncias.
Como vocês protegem meus dados?
Para proteger seus dados, o Memorystore para Valkey oferece os seguintes mecanismos:
- Autenticação do Identity and Access Management (IAM): use o IAM para gerenciar o acesso de login dos usuários e contas de serviço. A autenticação baseada no IAM se integra ao AUTH do Valkey, permitindo que você gire as credenciais (tokens do IAM) sem problemas, sem depender de senhas estáticas.
- Criptografia em trânsito: criptografa todo o tráfego do Valkey usando o protocolo Transport Layer Security (TLS). Quando a criptografia em trânsito está ativada, os clientes do Valkey se comunicam por uma conexão segura. Os clientes do Valkey que não estiverem configurados para TLS serã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 para Valkey de maneira ideal, recomendamos que você siga estas práticas recomendadas:
Para conectar seu aplicativo a uma instância do Memorystore for Valkey com o modo de cluster ativado, use um cliente recomendado, como valkey-go, iovalkey, valkey-py ou Valkey GLIDE.
Se você usar um cliente diferente, use um cliente Valkey compatível com cluster que mantenha um mapa de slots de hash para os nós correspondentes na instância. Como resultado, as solicitações podem ser enviadas aos nós corretos. Isso evita a sobrecarga de desempenho causada por redirecionamentos. Para mais informações, consulte Práticas recomendadas para clientes do Valkey.
Recomendamos definir os intervalos de tempo limite de conexão para cinco segundos e os intervalos de tempo limite de solicitação para 10 segundos. Se você definir intervalos menores, o Memorystore para Valkey poderá sofrer tempestades de reconexão, o que pode colocar o serviço em risco.
Use a espera exponencial como uma estratégia padrão de tratamento de erros para aplicativos de rede quando o cliente repete uma solicitação com falha periodicamente com atrasos crescentes entre as solicitações.
Use nossos exemplos de código da biblioteca de cliente. Por exemplo, os valores padrão do cliente valkey-go atendem a todas as nossas recomendações. Portanto, não é necessário configurar nada para esse cliente.
Quais são suas opções de capacidade de recuperação de dados?
O Memorystore para Valkey oferece os seguintes recursos para resiliência de dados:
Alta disponibilidade: o Memorystore para Valkey oferece capacidade redundante em nós de réplica. Se ocorrer uma falha, o Memorystore para Valkey poderá usar essa capacidade para operar sem inatividade.
Persistência: quando o ambiente falha inesperadamente, o Memorystore para Valkey o restaura automaticamente. Isso é conhecido como persistência.
O Memorystore para Valkey oferece o seguinte tipo de persistência:
Persistência do banco de dados do Redis (RDB): proteja seus dados salvando snapshots deles em um armazenamento durável. Você escolhe a frequência desses snapshots selecionando um intervalo de snapshot. Se houver falhas de nó, será possível recuperar os dados mesmo quando o failover não for possível.
Persistência de arquivo somente de anexação (AOF): use esse tipo de persistência quando quiser priorizar a durabilidade dos dados. A persistência AOF armazena dados de forma durável gravando todos os comandos de gravação em um arquivo de registro chamado arquivo AOF. Se ocorrer uma falha ou reinicialização do sistema, o servidor vai reproduzir os comandos do arquivo AOF sequencialmente para restaurar seus dados.
Backups: restaure manualmente suas instâncias do Memorystore para Valkey em um momento específico. Além disso, é possível usar backups para exportar e analisar dados.
Os backups são úteis para os seguintes cenários:
- Recuperação de desastres: use backups como parte de um plano de recuperação de desastres. Se ocorrer um desastre, você poderá restaurar os dados em uma nova instância do Memorystore para Valkey.
- Migração de dados: migre dados entre diferentes instâncias do Memorystore para Valkey. Você pode consolidar ou mover os dados para outra região. Também é possível restaurar backups de instâncias do Memorystore para Valkey.
- Compartilhar dados: compartilhe dados entre diferentes equipes ou aplicativos. Isso permite a colaboração, a análise de dados off-line e a troca de dados.
- Compliance: crie backups periódicos dos dados do cache para fins de compliance.
- Programar backups: além de criar um backup sob demanda, é possível configurar uma programação de backup para uma instância. Como resultado, o Memorystore para Valkey inicia backups periódicos da instância.
Replicação entre regiões: crie instâncias secundárias de uma instância principal para disponibilizar 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 interrupções regionais.
A replicação entre regiões no Memorystore para Valkey oferece os seguintes benefícios:
- Recuperação de desastres: se a região da instância principal ficar indisponível, será possível desconectar ou fazer failover para uma instância secundária em outra região para atender às solicitações de leitura e gravação. As instâncias secundárias atendem solicitações de leitura sem emitir um comando de failover ou de remoção.
- Dados distribuídos geograficamente: a distribuição geográfica aproxima os dados de você e diminui a latência de leitura.
- Balanceamento de carga geográfico para tráfego de leitura: se conexões lentas ou sobrecarregadas ocorrerem em uma região, você poderá rotear o tráfego para outra região.
Como conseguir o melhor desempenho para sua instância?
Para otimizar a performance da sua instância do Memorystore para Valkey, faça o seguinte:
- Siga as práticas recomendadas para gerenciamento de memória e uso da CPU, porque elas resultam no melhor desempenho para sua instância.
- Use registros de auditoria para
monitorar o acesso da sua instância. Assim, você pode determinar se há problemas associados à atividade do administrador na instância (o registro de auditoria
Admin Activity
) ou aos usuários que acessam dados da instância (o registro de auditoriaData Access
). - Use réplicas de leitura. No Memorystore para Valkey, a replicação é assíncrona. Portanto, os dados no nó principal não aparecem nas réplicas imediatamente. Se você puder lidar com dados um pouco desatualizados, use réplicas de leitura. Isso oferece melhorias significativas na capacidade de leitura e na latência.
Evite usar comandos do Valkey que consomem muitos recursos. O uso desses comandos pode resultar nos seguintes problemas de desempenho:
- Alta latência e tempos limite do cliente
- Pressão na memória causada por comandos que aumentam o uso da memória
- Perda de dados durante a replicação e sincronização de nós porque a linha de execução principal do Valkey está bloqueada
- Verificações de integridade, observabilidade e replicação sem recursos
Em vez de usar esses comandos, use comandos mais eficientes em termos de recursos. Por exemplo, para verificar todo o espaço de chaves, não use o comando
KEYS
. Em vez disso, useSCAN
.Para mais informações sobre comandos do Valkey que consomem muitos recursos e alternativas eficientes, consulte Comandos do Valkey que consomem muitos recursos.
Se as necessidades da sua empresa permitirem definir um prazo de validade para os dados, recomendamos que você faça isso. Definir um prazo de validade reduz o consumo de memória.
Faça upgrade da versão da sua instância do Memorystore para Valkey para a versão mais recente. As versões mais recentes do software têm melhorias de confiabilidade e desempenho.
Modifique o valor do parâmetro
maxmemory-policy
. Esse parâmetro especifica o comportamento que o Valkey segue quando os dados da instância atingem o limite demaxmemory
.Quando a memória da instância está cheia e uma nova gravação chega, o Valkey remove as chaves para liberar espaço para a gravação com base na política de
maxmemory
da instância. Se o valor do parâmetro
maxmemory-policy
for definido comonoeviction
, o Memorystore para Valkey vai retornar um erro quando a instância atingir a memória máxima. No entanto, o Memorystore para Valkey não substitui nem remove dados. Para melhorar a disponibilidade da instância, mude o valor do parâmetromaxmemory-policy
para que a Memorystore para Valkey possa desalojar chaves.Para mais informações sobre os diferentes valores que podem ser definidos para o parâmetro
maxmemory-policy
, consulte Políticas de Maxmemory. Para mais informações sobre como atualizar esse parâmetro, consulte Atualizar um parâmetro de configuração.Ajuste a instância do Memorystore para Valkey para que ela tenha a proporção de ocorrência em cache desejada. Isso ajuda a dimensionar corretamente o banco de dados para que ele possa processar a porcentagem adequada de hits.
Para ajustar uma instância, faça o seguinte:
- Use as métricas de monitoramento
total_keyspace_hits_count
etotal_keyspace_misses_count
para determinar o número total de pesquisas de chaves bem-sucedidas e com falha para a instância, respectivamente. - Divida o número total de hits pelo número total de hits e erros
(ou seja, hits/(hits + erros)). O quociente é sua proporção de ocorrências. - Para ajustar a instância e conseguir a proporção de ocorrência ideal para você, dimensione a instância. É possível aumentar ou diminuir a contagem de fragmentos ou o tipo de nó. Para mais informações, consulte Sobre o escalonamento da capacidade da instância.
Aumentar a taxa de acerto melhora a latência e a capacidade do sistema. Encontre o equilíbrio que funciona para suas metas de desempenho, escalonamento e custo.
- Use as métricas de monitoramento
Por padrão, recomendamos que você execute comparativos de performance na sua instância para determinar se mais conexões aumentam o desempenho sem saturação. O ponto de partida recomendado é configurar seu cliente para abrir uma conexão com cada nó do Valkey.
Ative o encadeamento para que seu cliente possa processar mais solicitações e fazer isso mais rápido. Para configurar o pipelining, use a biblioteca de cliente. Para mais informações, consulte a documentação associada a essa biblioteca.
Como otimizar a alta disponibilidade da sua instância?
Recomendamos criar instâncias altamente disponíveis e multizonais em vez de instâncias zonais únicas devido à maior confiabilidade que elas oferecem.
Se você criar uma instância de alta disponibilidade, recomendamos usar a métrica /instance/node/replication/offset
. Com essa métrica, é possível monitorar o deslocamento de replicação (em bytes) de um único nó na sua instância. O deslocamento de replicação é o número de bytes que o
Memorystore para Valkey não replicou entre o nó principal e as réplicas
de leitura.