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á.
Gerenciamento da memória reservada
A memória reservada é a memória reservada para o uso não relacionado a dados. Ao realizar um backup ou um failover, o Redis OSS usa a memória disponível para gravar operações de gravação em seu cluster enquanto os dados do cluster são gravados no arquivo.rdb. Se você não tiver memória suficiente disponível para todas as gravações, o processo falhará. A seguir, você encontrará informações sobre as opções para gerenciar a memória reservada para ElastiCache (Redis OSS) e como aplicar essas opções.
Tópicos
De quanta memória reservada você precisa?
Se você estiver executando uma versão do Redis OSS anterior à 2.8.22, reserve mais memória para backups e failovers do que se estivesse executando o Redis OSS 2.8.22 ou posterior. Esse requisito se deve às diferentes maneiras pelas quais ElastiCache (Redis OSS) implementa o processo de backup. A regra geral é reservar metade do maxmemory
valor de um tipo de nó para a sobrecarga do Redis OSS para versões anteriores à 2.8.22 e um quarto para as versões 2.8.22 e posteriores do Redis OSS.
Devido às diferentes maneiras de ElastiCache implementar o processo de backup e replicação, a regra geral é reservar 25% do maxmemory
valor de um tipo de nó usando o parâmetro. reserved-memory-percent
Esse é o valor padrão e é recomendado para a maioria dos casos.
Quando os tipos de instância micro e pequena com capacidade de intermitência estão operando perto dos maxmemory
limites, eles podem experimentar o uso de swap. Para melhorar a confiabilidade operacional desses tipos de instância durante o backup, a replicação e o tráfego intenso, recomendamos aumentar o valor do reserved-memory-percent
parâmetro em até 30% nos tipos de instâncias pequenas e até 50% nos tipos de microinstância.
Para cargas de trabalho com muita gravação em ElastiCache clusters com armazenamento de dados em camadas, recomendamos aumentar reserved-memory-percent
até 50% da memória disponível do nó.
Para obter mais informações, consulte as informações a seguir.
Parâmetros para gerenciar memória reservada
Em 16 de março de 2017, a Amazon ElastiCache (Redis OSS) fornece dois parâmetros mutuamente exclusivos para gerenciar sua memória Redis OSS, e. reserved-memory
reserved-memory-percent
Nenhum desses parâmetros faz parte da distribuição do Redis OSS.
Dependendo de quando você se tornou ElastiCache cliente, um ou outro desses parâmetros é o parâmetro padrão de gerenciamento de memória. Esse parâmetro se aplica quando você cria um novo cluster ou grupo de replicação do Redis OSS e usa um grupo de parâmetros padrão.
-
Para clientes que começaram antes de 16 de março de 2017 — Quando você cria um cluster ou grupo de replicação do Redis OSS usando o grupo de parâmetros padrão, seu parâmetro de gerenciamento de memória é.
reserved-memory
Nesse caso, zero (0) bytes de memória são reservados. -
Para clientes que começaram em ou após 16 de março de 2017 — Quando você cria um cluster ou grupo de replicação do Redis OSS usando o grupo de parâmetros padrão, seu parâmetro de gerenciamento de memória é.
reserved-memory-percent
Nesse caso, 25% do valormaxmemory
dos seus nós será reservado para fins não de dados.
Depois de ler sobre os dois parâmetros de gerenciamento de memória do Redis OSS, talvez você prefira usar aquele que não é seu padrão ou com valores não padrão. Se esse for o caso, você poderá alterar para o outro parâmetro de gerenciamento de memória reservada.
Para alterar o valor desse parâmetro, você pode criar um grupo de parâmetros personalizado e modificá-lo para usar o parâmetro e o valor de gerenciamento de memória preferidos. Em seguida, você pode usar o grupo de parâmetros personalizado sempre que criar um novo cluster ou grupo de replicação do Redis OSS. Para clusters ou grupos de replicação existentes, você pode modificá-los para usar o parameter group personalizado.
Para obter mais informações, consulte as informações a seguir.
O parâmetro reserved-memory
Antes de 16 de março de 2017, todo o gerenciamento de memória reservada ElastiCache (Redis OSS) era feito usando o parâmetro. reserved-memory
O valor padrão de reserved-memory
é 0. Esse padrão não reserva memória para a sobrecarga do Redis OSS e permite que o Redis OSS consuma toda a memória de um nó com dados.
A alteração do parâmetro reserved-memory
para que você tenha memória suficiente disponível para backups e failovers requer que você crie um parameter group personalizado. Nesse grupo de parâmetros personalizados, você define um valor apropriado reserved-memory
para a versão do Redis OSS em execução no seu cluster e no tipo de nó do cluster. Para ter mais informações, consulte De quanta memória reservada você precisa?.
O parâmetro reserved-memory
é específico para ElastiCache (Redis OSS) e não faz parte da distribuição geral do Redis OSS.
O procedimento a seguir mostra como usar reserved-memory
para gerenciar a memória em seu cluster Redis OSS.
Para reservar memória usando reserved-memory
-
Crie um parameter group personalizado especificando a família de parameter groups que corresponde à versão do mecanismo que você está executando, por exemplo, especificando a família de parameter groups
redis2.8
. Para ter mais informações, consulte Criar um parameter group.aws elasticache create-cache-parameter-group \ --cache-parameter-group-name
redis6x-m3xl
\ --description "Redis OSS 2.8.x for m3.xlarge node type
" \ --cache-parameter-group-familyredis6.x
-
Calcule quantos bytes de memória devem ser reservados para a sobrecarga do Redis OSS. Você pode encontrar o valor de
maxmemory
para o seu tipo de nó em Parâmetros específicos do tipo de nó Redis OSS. -
Modifique o parameter group personalizado para que o parâmetro
reserved-memory
seja o número de bytes que você calculou na etapa anterior. O AWS CLI exemplo a seguir pressupõe que você esteja executando uma versão do Redis OSS anterior à 2.8.22 e precise reservar metade dos nós.maxmemory
Para ter mais informações, consulte Modificar um parameter group.aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800
"Observe que você precisa de um grupo de parâmetros personalizado separado para cada tipo de nó utilizado, pois cada tipo de nó possui um valor de
maxmemory
diferente. Assim, cada tipo de nó precisa de um valor diferente parareserved-memory
. -
Modifique seu cluster ou grupo de replicação do Redis OSS para usar seu grupo de parâmetros personalizado.
O exemplo de CLI a seguir modifica o cluster
my-redis-cluster
para começar a usar imediatamente o parameter groupredis28-m3xl
. Para ter mais informações, consulte Modificando um cluster ElastiCache .aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediatelyO exemplo de CLI a seguir modifica o grupo de replicação
my-redis-repl-grp
para começar a usar imediatamente o parameter groupredis28-m3xl
. Para obter mais informações, Modificação de um grupo de replicação.aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediately
O reserved-memory-percent parâmetro
Em 16 de março de 2017, a Amazon ElastiCache apresentou o parâmetro reserved-memory-percent
e o disponibilizou em todas as versões do ElastiCache (Redis OSS). O objetivo de reserved-memory-percent
é simplificar o gerenciamento da memória reservada em todos os seus clusters. Ele faz isso permitindo que você tenha um único parameter group para cada família de parameter groups (como redis2.8
) para gerenciar a memória reservada dos seus clusters, independentemente do tipo de nó. O valor padrão para reserved-memory-percent
é 25 (25%).
O parâmetro reserved-memory-percent
é específico para ElastiCache (Redis OSS) e não faz parte da distribuição geral do Redis OSS.
Se o cluster estiver usando um tipo de nó da família r6gd e o uso de memória atingir 75%, a classificação de dados em níveis será acionada automaticamente. Para ter mais informações, consulte Classificação de dados em níveis.
Para reservar memória usando reserved-memory-percent
Para usar reserved-memory-percent
para gerenciar a memória em seu cluster ElastiCache (Redis OSS), faça o seguinte:
-
Se você estiver executando o Redis OSS 2.8.22 ou posterior, atribua o grupo de parâmetros padrão ao seu cluster. O padrão de 25 por cento deve ser adequado. Caso contrário, siga as etapas descritas a seguir para alterar o valor.
-
Se você estiver executando uma versão do Redis OSS anterior à 2.8.22, provavelmente precisará reservar mais memória
reserved-memory-percent
do que os 25% padrão. Para fazer isso, use o procedimento a seguir.
Para alterar o valor percentual de reserved-memory-percent
-
Crie um parameter group personalizado especificando a família de parameter groups que corresponde à versão do mecanismo que você está executando, por exemplo, especificando a família de parameter groups
redis2.8
. Um grupo de parâmetros personalizado é necessário, pois você não pode modificar um grupo de parâmetros padrão. Para ter mais informações, consulte Criar um parameter group.aws elasticache create-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --description "Redis OSS 2.8.x 50% reserved
" \ --cache-parameter-group-familyredis2.8
Como
reserved-memory-percent
reserva a memória como uma porcentagem damaxmemory
de um nó, você não precisa de um parameter group personalizado para cada tipo de nó. -
Modifique o parameter group personalizado para que
reserved-memory-percent
seja 50 (50%). Para ter mais informações, consulte Modificar um parameter group.aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50
" -
Use esse grupo de parâmetros personalizado para qualquer cluster ou grupo de replicação do Redis OSS que executem uma versão do Redis OSS anterior à 2.8.22.
O exemplo de CLI a seguir modifica o cluster Redis OSS
my-redis-cluster
para usar o grupo de parâmetros personalizado começando imediatamente.redis28-50
Para ter mais informações, consulte Modificando um cluster ElastiCache .aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-50
\ --apply-immediatelyO exemplo de CLI a seguir modifica o grupo de replicação do Redis OSS
my-redis-repl-grp
para usar o grupo de parâmetros personalizado começando imediatamente.redis28-50
Para ter mais informações, consulte Modificação de um grupo de replicação.aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-50
\ --apply-immediately
Especificação do parâmetro de gerenciamento de memória reservada
Se você era um ElastiCache cliente atual em 16 de março de 2017, seu parâmetro padrão de gerenciamento de memória reservada é reserved-memory
com zero (0) bytes de memória reservada. Se você se tornou ElastiCache cliente depois de 16 de março de 2017, seu parâmetro padrão de gerenciamento de memória reservada é reserved-memory-percent
com 25% da memória do nó reservada. Isso é verdade independentemente de quando você criou seu cluster ElastiCache (Redis OSS) ou grupo de replicação. No entanto, você pode alterar seu parâmetro de gerenciamento de memória reservada usando a ElastiCache API AWS CLI ou.
Os parâmetros reserved-memory
e reserved-memory-percent
são mutuamente exclusivos. Um grupo de parâmetros sempre terá um, mas nunca os dois. Você pode alterar o parâmetro usado por um parameter group para o gerenciamento da memória reservada, modificando o parameter group. O grupo de parâmetros deve ser personalizado, pois não é possível modificar grupos de parâmetros padrão. Para ter mais informações, consulte Criar um parameter group.
Para especificar reserved-memory-percent
Para usar reserved-memory-percent
como o parâmetro de gerenciamento de memória reservada, modifique um grupo de parâmetros usando o comando modify-cache-parameter-group
. Use o parâmetro parameter-name-values
para especificar reserved-memory-percent
e um valor para ele.
O seguinte exemplo de CLI modifica o parameter group personalizado redis32-cluster-on
para que ele use reserved-memory-percent
para gerenciar a memória reservada. Um valor deve ser atribuído a ParameterValue
para que o grupo de parâmetros use o parâmetro ParameterName
para gerenciamento de memória reservada. Para ter mais informações, consulte Modificar um parameter group.
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-cluster-on
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25
"
Para especificar reserved-memory
Para usar reserved-memory
como o parâmetro de gerenciamento de memória reservada, modifique um grupo de parâmetros usando o comando modify-cache-parameter-group
. Use o parâmetro parameter-name-values
para especificar reserved-memory
e um valor para ele.
O seguinte exemplo de CLI modifica o parameter group personalizado redis32-m3xl
para que ele use reserved-memory
para gerenciar a memória reservada. Um valor deve ser atribuído a ParameterValue
para que o grupo de parâmetros use o parâmetro ParameterName
para gerenciamento de memória reservada. Como a versão do mecanismo é mais recente do que 2.8.22, definimos o valor como 3565158400
, que equivale a 25% da maxmemory
de um cache.m3.xlarge
. Para ter mais informações, consulte Modificar um parameter group.
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400
"