64

「 Amazon DynamoDB のスループットはどのように計算され、制限されていますか? 」への回答では、DynamoDB は、プロビジョニングされたスループットを秒単位で超えるたびにリクエストを調整することが提案されています。しかし、これは私の経験と矛盾します。

複数の行を投稿するテーブルがあります。多くの場合、プロビジョニングされた書き込み容量をはるかに超える行数です。これは短いバーストで発生します。ある時点で、プロビジョニングされたキャパシティーを平均 5 分超えることさえありました。OTOH、15分間の平均はキャパシティを下回っています。その間、スロットリングされたリクエストはありませんでした。

5 分の平均ピークは 8.053 で、プロビジョニングされた容量は 6 です。 平均5分

15 分間の平均ピークは、プロビジョニングされた容量を大幅に下回っています。

ここに画像の説明を入力

では、DynamoDB がリクエストをスロットリングするのはいつでしょうか? どのような平均が考慮されますか? バーストがスロットリングされる前に、プロビジョニングされたキャパシティーをどれだけ上回ることができますか?

4

3 に答える 3

86

DynamoDB は、プロビジョニングされたキャパシティーが秒単位で確実に利用できるように設計されています。毎秒 1kB の読み取りを 10 回行うテーブルをプロビジョニングすると、DynamoDB はそのスループット レートを処理するのに十分な容量を提供します。さらに、DynamoDB では、プロビジョニングされたスループットを超える制限付きバーストを短期間達成できる場合があります。これは、お客様のワークロードの自然な変動を吸収することを目的としています。このバーストは保証されておらず、常に利用できるわけではありません (利用可能なバーストの性質は、時間の経過とともに変化する可能性があります)。ベスト プラクティス ドキュメントで現在説明されているように、最高のパフォーマンスを得るには、プロビジョニングされた容量を超えず、キー スペース全体に均等に負荷を分散する、均等に分散されたワークロードが必要です。でも、

テーブルをどれだけプロビジョニングするかについては、ワークロードに大きく依存します。ピークの 80% 程度にプロビジョニングすることから始めて、受け取ったスロットルの数 (CloudWatch グラフで確認できます) と、再試行によって引き起こされるレイテンシーに対するアプリケーションの許容度に応じて、テーブルの容量を調整できます。DynamoDB では、プロビジョニングされた容量を超える無制限のバーストは許可されないことに注意してください。短いバーストは吸収できるかもしれませんが、プロビジョニングされた容量レベルを超えるスループット レートを長時間維持することはできません。私たちが提供できる一般的なガイダンスは、ピークに近いものをプロビジョニングしてから、スロットルを監視しながらダイヤルダウンすることです.

この回答は AWS フォーラムに投稿されました

免責事項: 私は Amazon の DynamoDB チームで働いています。

于 2013-06-19T10:27:27.543 に答える