翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Valkey と Redis の予約済みメモリの管理 OSS
予約メモリは、nondata 用に確保されるメモリです。バックアップまたはフェイルオーバーを実行すると、Valkey と Redis は使用可能なメモリOSSを使用して、クラスターのデータが .rdb ファイルに書き込まれている間、クラスターへの書き込みオペレーションを記録します。すべての書き込みに十分なメモリが使用可能できない場合、プロセスは失敗します。次に、 ElastiCache (Redis OSS) の予約済みメモリを管理するためのオプションと、それらのオプションを適用する方法について説明します。
予約メモリはどれくらい必要ですか。
OSSより前のバージョンの Redis を実行している場合は、Redis OSS2.8.22 以降を実行している場合よりもバックアップとフェイルオーバー用により多くのメモリを予約します。この要件は、 ElastiCache (Redis OSS) がバックアッププロセスを実装する方法が異なるためです。経験則では、2.8.22 より前のバージョンの Redis OSSオーバーヘッドにはノードタイプのmaxmemory
値の半分を、Redis OSSバージョン 2.8.22 以降の場合は 4 分の 1 を予約します。
がバックアップとレプリケーションプロセス ElastiCache を実装する方法が異なるため、経験則は reserved-memory-percent
パラメータを使用してノードタイプのmaxmemory
値の 25% を予約することです。これはデフォルト値であり、ほとんどの場合に推奨されます。
バースト可能なマイクロインスタンスタイプとスモールインスタンスタイプがmaxmemory
制限付近で動作している場合、スワップの使用が発生する可能性があります。バックアップ、レプリケーション、高トラフィック時にこれらのインスタンスタイプの運用上の信頼性を向上させるには、reserved-memory-percent
パラメータの値を小規模インスタンスタイプでは最大 30%、マイクロインスタンスタイプでは最大 50% に増やすことをお勧めします。
データ階層化を使用する ElastiCache クラスターの書き込み負荷の高いワークロードでは、ノードの使用可能なメモリの最大 50% reserved-memory-percent
まで を増やすことをお勧めします。
詳細については、次を参照してください。
予約メモリを管理するパラメータ
2017 年 3 月 16 日現在、Amazon ElastiCache は Valkey または Redis OSSメモリを管理するための 2 つの相互に排他的なパラメータreserved-memory
と を提供していますreserved-memory-percent
。これらのパラメータはいずれも Valkey ディストリビューションまたは Redis OSSディストリビューションの一部ではありません。
ElastiCache 顧客になった時期に応じて、これらのパラメータの 1 つまたはもう 1 つがデフォルトのメモリ管理パラメータです。このパラメータは、新しい Valkey または Redis OSSクラスターまたはレプリケーショングループを作成し、デフォルトのパラメータグループを使用する場合に適用されます。
-
2017 年 3 月 16 日より前に開始されたお客様の場合 – デフォルトのパラメータグループを使用して Redis OSSクラスターまたはレプリケーショングループを作成する場合、メモリ管理パラメータは です
reserved-memory
。この場合、0 バイトのメモリが予約されます。 -
2017 年 3 月 16 日以降に開始されたお客様の場合 – デフォルトのパラメータグループを使用して Valkey または Redis OSSクラスターまたはレプリケーショングループを作成する場合、メモリ管理パラメータは です
reserved-memory-percent
。この場合、ノードのmaxmemory
値の 25% がデータ以外の目的で予約されます。
2 つの Valkey または Redis OSSメモリ管理パラメータについて読んだ後、デフォルトではないパラメータまたはデフォルト以外の値を使用することをお勧めします。その場合は、他の予約メモリ管理パラメータに変更できます。
そのパラメータの値を変更するには、カスタムパラメータグループを作成し、希望のメモリ管理パラメータと値を使用するように変更します。その後、新しい Valkey または Redis OSSクラスターまたはレプリケーショングループを作成するたびに、カスタムパラメータグループを使用できます。既存のクラスターまたはレプリケーショングループの場合は、カスタムパラメータグループを使用するように変更できます。
詳細については、次を参照してください。
予約メモリのパラメータ
2017 年 3 月 16 日より前に、すべての ElastiCache (Redis OSS) 予約済みメモリ管理は パラメータ を使用して行われましたreserved-memory
。reserved-memory
のデフォルト値は 0 です。このデフォルトは、Valkey または Redis オーバーOSSヘッドのメモリをリザーブせず、Valkey または Redis がノードのすべてのメモリをデータで消費OSSできるようにします。
バックアップ用およびフェイルオーバー用に使用できる十分なメモリを持てるように reserved-memory
を変更するには、カスタムパラメータグループを作成する必要があります。このカスタムパラメータグループでは、クラスターとクラスターのノードタイプで実行されている Valkey または Redis OSSバージョンに適した値reserved-memory
に設定します。詳細については、「予約メモリはどれくらい必要ですか。」を参照してください
パラメータreserved-memory
は に ElastiCache固有であり、一般的な Redis OSSディストリビューションの一部ではありません。
次の手順は、 reserved-memory
を使用して Valkey または Redis OSSクラスターのメモリを管理する方法を示しています。
予約メモリを使用してメモリを予約するには
-
実行中のエンジンバージョンに一致するパラメータグループファミリーを指定するカスタムパラメータグループを作成します。たとえば、
redis2.8
パラメータグループファミリーを指定します。詳細については、「 ElastiCache パラメータグループの作成」を参照してください。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
-
Valkey または Redis オーバーOSSヘッド用に予約するメモリのバイト数を計算します。ノードタイプに対する
maxmemory
値を Redis OSSノードタイプ固有のパラメータ で確認できます。 -
パラメータ
reserved-memory
が前の手順で計算したバイト数であるように、カスタムパラメータグループを変更します。次の AWS CLI 例では、2.8.22 OSSより前に Redis のバージョンを実行しており、ノードの の半分を予約する必要があることを前提としていますmaxmemory
。詳細については、「 ElastiCache パラメータグループの変更」を参照してください。aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800
"各ノードタイプには異なる
maxmemory
値があるため、使用する各ノードタイプに対して個別のカスタムパラメータグループが必要です。したがって、各ノードタイプにはreserved-memory
に対して異なる値が必要です。 -
カスタムパラメータグループを使用するように Redis OSSクラスターまたはレプリケーショングループを変更します。
次のCLI例では、カスタムパラメータグループを
redis28-m3xl
すぐに使用my-redis-cluster
するようにクラスターを変更します。詳細については、「 ElastiCache クラスターの変更」を参照してください。aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediately次のCLI例では、レプリケーショングループを変更
my-redis-repl-grp
して、カスタムパラメータグループをすぐにredis28-m3xl
使用できるようにします。詳細については、「レプリケーショングループの変更」。aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediately
reserved-memory-percent パラメータ
2017 年 3 月 16 日、Amazon は パラメータ ElastiCache を導入reserved-memory-percent
し、すべてのバージョンの ElastiCache (Redis ) で利用可能にしましたOSS。reserved-memory-percent
の目的は、すべてのクラスターに対して予約メモリ管理を簡易化することです。ノードタイプにかかわらずクラスターの予約メモリを管理するために、各パラメータグループファミリー (redis2.8
など) に対して単一のパラメータグループを持てるようにすることによって実行します。reserved-memory-percent
のデフォルト値は 25 (25 パーセント) です。
パラメータreserved-memory-percent
は に固有 ElastiCache であり、一般的な Redis OSSディストリビューションの一部ではありません。
r6gd ファミリーのノードを使用しているクラスターでメモリ使用量が 75% に達すると、データ階層化が自動的にトリガーされます。詳細については、「のデータ階層化 ElastiCache」を参照してください。
を使用してメモリを予約するには reserved-memory-percent
( ElastiCache Redis OSS) クラスターのメモリを管理するreserved-memory-percent
ために を使用するには、次のいずれかを実行します。
-
Redis OSS2.8.22 以降を実行している場合は、デフォルトのパラメータグループをクラスターに割り当てます。デフォルトの 25 パーセントで十分です。そうでない場合、次のステップを実行して、値を変更します。
-
2.8.22 OSSより前に Redis のバージョンを実行している場合は、
reserved-memory-percent
のデフォルト 25% よりも多くのメモリを予約する必要がある可能性があります。そのためには、次の手順を使用します。
のパーセント値を変更するには reserved-memory-percent
-
実行中のエンジンバージョンに一致するパラメータグループファミリーを指定するカスタムパラメータグループを作成します。たとえば、
redis2.8
パラメータグループファミリーを指定します。カスタムパラメータグループは、デフォルトのパラメータグループを変更できないため必要です。詳細については、「 ElastiCache パラメータグループの作成」を参照してください。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
reserved-memory-percent
は、ノードのmaxmemory
に対する割合としてメモリを予約するため、各ノードタイプに対応するカスタムパラメータグループは必要ありません。 -
reserved-memory-percent
が 50 (50 パーセント) であるようにカスタムパラメータグループを変更します。詳細については、「 ElastiCache パラメータグループの変更」を参照してください。aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50
" -
このカスタムパラメータグループは、2.8.22 よりOSS古いバージョンの Redis を実行している Redis OSSクラスターまたはレプリケーショングループに使用します。
次のCLI例では、Redis OSSクラスターを変更
my-redis-cluster
して、カスタムパラメータグループをすぐにredis28-50
使用できるようにします。詳細については、「 ElastiCache クラスターの変更」を参照してください。aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-50
\ --apply-immediately次のCLI例では、Redis OSSレプリケーショングループを変更
my-redis-repl-grp
して、カスタムパラメータグループをすぐにredis28-50
使用できるようにします。詳細については、「レプリケーショングループの変更」を参照してください。aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-50
\ --apply-immediately
予約メモリ管理パラメータの指定
2017 年 3 月 16 日に現在の ElastiCache 顧客であった場合、デフォルトのリザーブドメモリ管理パラメータは、リザーブドメモリのreserved-memory
ゼロ (0) バイトです。2017 年 3 月 16 日以降に ElastiCache 顧客になった場合、デフォルトのリザーブドメモリ管理パラメータはノードのメモリの reserved-memory-percent
25% が予約されています。これは、 ElastiCache (Redis OSS) クラスターまたはレプリケーショングループをいつ作成したかに関係なく当てはまります。ただし、 AWS CLI または を使用して、予約済みメモリ管理パラメータを変更できます ElastiCache API。
パラメータ reserved-memory
および reserved-memory-percent
は相互に排他的です。パラメータグループには、常にどちらかがありますが、両方があることはありません。パラメータグループを変更することによって、パラメータグループが予約メモリ管理のためにどちらのパラメータを使用するかを変更できます。デフォルトのパラメータグループは変更できないため、パラメータグループはカスタムパラメータグループである必要があります。詳細については、「 ElastiCache パラメータグループの作成」を参照してください。
を指定するには reserved-memory-percent
予約メモリ管理パラメータとして reserved-memory-percent
を使用するには、modify-cache-parameter-group
コマンドを使用してカスタムパラメータグループを変更します。parameter-name-values
パラメータを使用して、reserved-memory-percent
とそれの値を指定します。
次のCLI例では、 reserved-memory-percent
を使用して予約済みメモリを管理するredis32-cluster-on
ようにカスタムパラメータグループを変更します。パラメータグループが予約メモリ管理に ParameterName
パラメータを使用するには、ParameterValue
に値を割り当てる必要があります。詳細については、「 ElastiCache パラメータグループの変更」を参照してください。
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-cluster-on
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25
"
reserved-memory を指定するには
予約メモリ管理パラメータとして reserved-memory
を使用するには、modify-cache-parameter-group
コマンドを使用してカスタムパラメータグループを変更します。parameter-name-values
パラメータを使用して、reserved-memory
とそれの値を指定します。
次のCLI例では、 reserved-memory
を使用して予約済みメモリを管理するredis32-m3xl
ようにカスタムパラメータグループを変更します。パラメータグループが予約メモリ管理に ParameterName
パラメータを使用するには、ParameterValue
に値を割り当てる必要があります。エンジンバージョンは 2.8.22 より新しいため、値を cache.m3.xlarge
の maxmemory
の 25% である 3565158400
に設定します。詳細については、「 ElastiCache パラメータグループの変更」を参照してください。
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400
"