As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Garantindo que você tenha memória suficiente para criar um instantâneo do Valkey ou do Redis OSS
Instantâneos e sincronizações no Valley 7.2 e posterior e no Redis versão 2.8.22 e posterior OSS
O Valkey tem suporte padrão para instantâneos e sincronizações. O Redis OSS 2.8.22 introduz um processo de salvamento sem bifurcação que permite alocar mais memória para o uso do aplicativo sem incorrer no aumento do uso de swap durante sincronizações e salvamentos. Para obter mais informações, consulte Como a sincronização e o backup são implementados.
OSSInstantâneos e sincronizações do Redis antes da versão 2.8.22
Quando você trabalha com ElastiCache (RedisOSS), o Redis OSS chama um comando de gravação em segundo plano em vários casos:
Ao criar um snapshot para um backup.
Ao sincronizar réplicas com o primário em um grupo de replicação.
Ao ativar o recurso de anexar somente arquivo (AOF) para Redis. OSS
Ao promover uma réplica para primário (o que causa uma sincronização entre o primário/réplica).
Sempre que o Redis OSS executa um processo de gravação em segundo plano, você deve ter memória disponível suficiente para acomodar a sobrecarga do processo. A falta de memória suficiente disponível faz com que o processo falhe. Por isso, é importante escolher um tipo de instância de nó que tenha memória suficiente ao criar seu OSS cluster Redis.
Processo de gravação em segundo plano e uso de memória com Valkey e Redis OSS
Sempre que um processo de gravação em segundo plano é chamado, o Valkey e o Redis OSS bifurcam seu processo (lembre-se de que esses mecanismos são de thread único). Uma bifurcação persiste seus dados no disco em um arquivo de instantâneo Redis OSS .rdb. A outra bifurcação atende a todas as operações de leitura e gravação. Para garantir que seu instantâneo seja um point-in-time instantâneo, todas as atualizações e adições de dados são gravadas em uma área da memória disponível separada da área de dados.
Enquanto você tiver memória suficiente disponível para registrar todas as operações de gravação durante a manutenção dos dados no disco, não haverá problemas de memória insuficiente. É provável que você experimente problemas de memória insuficiente se uma das seguintes condições for verdadeira:
-
Seu aplicativo realiza muitas operações de gravação, exigindo assim uma grande quantidade de memória disponível para aceitar os dados novos ou atualizados.
-
Você tem pouca memória disponível para gravar dados novos ou atualizados.
-
Você tem um grande conjunto de dados que demora muito para persistir no disco, exigindo um grande número de operações de gravação.
O diagrama a seguir ilustra o uso da memória ao executar um processo de gravação em segundo plano.
Para obter informações sobre o impacto de fazer um backup sobre o desempenho, consulte Impacto sobre o desempenho dos backups de clusters autoprojetados.
Para obter mais informações sobre regiões e zonas de disponibilidade, consulte Escolhendo regiões e zonas de disponibilidade para ElastiCache.
Evitando memória insuficiente ao executar uma gravação em segundo plano
Sempre que um processo de gravação em segundo plano, como BGSAVE
ou BGREWRITEAOF
é chamado, para evitar que o processo falhe, você deve ter mais memória disponível do que a consumida pelas operações de gravação durante o processo. O pior cenário é que, durante a operação de gravação em segundo plano, cada registro seja atualizado e alguns novos registros sejam adicionados ao cache. Por isso, recomendamos que você reserved-memory-percent
defina como 50 (50 por cento) para OSS as versões do Redis anteriores à 2.8.22 ou 25 (25 por cento) para o Valkey e todas as versões 2.8.22 e posteriores do RedisOSS.
O valor maxmemory
indica a memória disponível para dados e sobrecargas operacionais. Como você não pode modificar o parâmetro reserved-memory
no parameter group padrão, deve criar um parameter group personalizado para o cluster. O valor padrão para reserved-memory
é 0, o que permite que o Redis consuma toda OSS a memória máxima com dados, potencialmente deixando pouca memória para outros usos, como um processo de gravação em segundo plano. Para valores maxmemory
por tipo de instância de nó, consulte Parâmetros específicos do tipo de OSS nó Redis.
Você também pode usar o reserved-memory
parâmetro para reduzir a quantidade de memória usada na caixa.
Para obter mais informações sobre os parâmetros específicos do Valkey e do Redis em, consulte. ElastiCache Parâmetros Valkey e Redis OSS
Para obter informações sobre como criar e modificar parameter groups, consulte Criação de um grupo de ElastiCache parâmetros e Modificando um grupo de ElastiCache parâmetros.