View a markdown version of this page

検索書き込みスロットリング - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

検索書き込みスロットリング

最適なパフォーマンスとデータ耐久性を維持するために、ElastiCache は耐久性モードで、必要に応じて検索トラフィックに書き込みスロットリングを実装します。スロットリングは、書き込みアクティビティが高い期間に遅延することなく、自動バックアップメカニズムを効果的に動作させるのに役立ちます。書き込みスループットを一時的に減らすことで、システムはマルチ AZ トランザクションログの整合性を維持します。これは、データベースの迅速な復旧と再起動に不可欠です。

スロットリングの範囲

検索インデックスに属するキーをターゲットとする書き込みコマンドのみがスロットリングされます。インデックス化されていないキーへの書き込みとすべての読み取りコマンドは影響を受けません

インデックス付きキーをターゲットにする場合、次のコマンドはスロットリングの対象となります。

検索書き込みスロットリングの対象となるコマンド
Category コマンド
ハッシュ HSET, HSETNX, HMSET, HINCRBY, HINCRBYFLOAT, HDEL
JSON JSON.SET, JSON.DEL, JSON.NUMINCRBY, JSON.NUMMULTBY, JSON.STRAPPEND, JSON.ARRAPPEND, JSON.ARRINSERT, JSON.ARRPOP, JSON.ARRTRIM, JSON.TOGGLE, JSON.CLEAR, JSON.MERGE
ジェネリック DEL, UNLINK, RENAME, RENAMENX, COPY, RESTORE

クライアントエクスペリエンス

スロットリングされたコマンドは遅延し、拒否されません。影響を受ける書き込みは完了するまでに時間がかかりますが、成功します。エラーはクライアントに返されません。

影響は、次の Amazon CloudWatch メトリクスを通じて確認できます。

  • SuccessfulWriteRequestLatency および SearchBasedSetCmdsLatency — 影響を受けた書き込みのレイテンシーの増加を反映します。

  • SearchWriteThrottleActiveSearchWriteThrottledClientsCountSearchWriteThrottleEvents- スロットリングがアクティブかどうかと、どの程度アクティブかを示します。詳細については、「モニタリング」を参照してください。

スロットリングがアクティブ化されたとき

システムは、2 時間のローリングウィンドウで検索モジュールのライタースレッドの CPU 使用率をモニタリングします。スロットリングは、そのウィンドウの平均 CPU 使用率が 50% を超えるとアクティブ化され、許可された書き込みレートを調整して平均使用率を 50% に戻します。

メトリクスは 2 時間のウィンドウにわたって平均化されるため、同じウィンドウ内の使用量が少ないためにオフセットされている限り、CPU 使用量の増加の短いバーストによってスロットリングが単独でトリガーされることはありません。

オーバースロットリングを防ぐために、システムは現在の CPU 使用率もリアルタイムで評価します。現在の CPU 使用率が既に 50% 以下の場合、2 時間の平均がしきい値を上回っている場合でも、システムは書き込みレートをさらに減らすのではなく安定した書き込みレートを維持します。これにより、書き込み容量が通常のスループットの 50% を下回ることがなくなります。

スロットリングが非アクティブ化された場合

2 時間の平均 CPU 使用率が 50% を下回ると、システムはフルスループットが回復し、スロットリングが非アクティブ化されるまで、許可された書き込みレートを徐々に引き上げます。

モニタリング

検索書き込みスロットリングをモニタリングするには、次の Amazon CloudWatch メトリクスを使用できます。

CloudWatch メトリクスの検索書き込みスロットリング
メトリクス 説明 Unit
SearchWriteThrottleActive スロットリングが現在アクティブかどうかを示します。 1 = アクティブ、 0 = 非アクティブ。 ブール値
SearchWriteThrottledClientsCount 現在スロットリングされているクライアント接続の数。 カウント
SearchWriteThrottleEvents レポート間隔内のスロットルイベントの数。 カウント
SearchWriteCPUUtilization 検索ライタースレッドの現在の CPU 使用率。 割合 (%)

ベストプラクティス

  • モニタリング SearchWriteCPUUtilization — 検索書き込み CPU 使用率を追跡してワークロードパターンを理解し、スロットリングしきい値に近づくタイミングを予測します。

  • モニタリング SearchWriteThrottleActive — スロットリングがアクティブかどうかを追跡し、迅速に調査して対応できるようにします。

  • 2 時間ウィンドウ前後の持続的な取り込みを計画する — システムは 2 時間のローリング平均を使用するため、高い書き込みアクティビティの短いバーストは、同じウィンドウ内の使用量が少ないためにオフセットされている限り、完全にサポートされます。

  • 持続的なスロットリングまたは頻繁なスロットリングが発生した場合にクラスターをスケールする — ワークロードが一貫してしきい値を超え、スロットリングがアプリケーションのレイテンシー要件に影響する場合は、スケーリングを検討して容量を追加することを検討してください。