36

1秒あたりの平均ですか?毎分?1時間当たり?

たとえば、1秒あたり10回の非常に一貫性のある読み取りを可能にする10個の「読み取り単位」を支払う場合、1秒間に20回の読み取りを実行しようとすると、最後の1時間?AmazonのドキュメントとFAQは、私が見つけたどこでもこの重要な質問に答えていません。

FAQで見つけた唯一の関連する応答は、使用量の計算方法とスロットルが発生する可能性がある場合の問題を完全に無視しています。

Q:アプリケーションがプロビジョニングされた容量よりも多くの読み取りまたは書き込みを実行するとどうなりますか?

A:アプリケーションがテーブルのプロビジョニングされたスループット容量で許可されているよりも多くの読み取り/秒または書き込み/秒を実行する場合、プロビジョニングされた容量を超えるリクエストは抑制され、400のエラーコードを受け取ります。たとえば、1,000の書き込み容量ユニットを要求し、1 KBアイテムの1秒あたり1,500の書き込みを実行しようとした場合、DynamoDBは1秒あたり1,000の書き込みのみを許可し、追加の要求でエラーコード400を受け取ります。CloudWatchを使用してリクエストレートを監視し、必要なリクエストレートを達成するのに十分なプロビジョニングされたスループットが常にあることを確認する必要があります。

4

7 に答える 7

46

彼らは5分間のウィンドウで書き込みを追跡し、過去5分間の平均がプロビジョニングされたスループットを超えるとスロットルを調整するようです。

私はいくつかのテストを行いました。1書き込み/秒のスループットでテストテーブルを作成しました。しばらく書き込みをせずにリクエストのストリームを送信すると、Amazonはスロットルを開始する前に約300を受け入れるようです。

もちろん、注意点は、これはAmazonの公式ドキュメントには記載されておらず、いつでも変更される可能性があるということです。

于 2013-10-02T17:23:34.267 に答える
11

DynamoDBは、テーブルから読み取られるデータ量の急増を可能にする「バースト容量」を提供します。詳細については、http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html#GuidelinesForTables.Burstingをご覧ください。

基本的には、@abjenningsが気付いたものです。5分のウィンドウを使用してテーブルからの読み取り数を平均します。

于 2015-02-20T10:06:03.133 に答える
9

1秒あたり10回の非常に一貫性のある読み取りを可能にする10個の「読み取り単位」を支払う場合、過去1時間に発生した読み取りが20回だけであったとしても、1秒間に20回の読み取りを実行しようとすると抑制されますか?

はい、これは、Amazon DynamoDB高速で予測可能なパフォーマンスであり、シームレスなスケーラビリティを備えいるという概念そのものによるものです-引用されたFAQは、実際にはすでにこれに正しく対処しています(つまり、文字通り1秒あたりの操作を行う必要があります)。確かにAmazonDynamoDBのスループット

書き込み容量の単位を使用すると、最大1KBのサイズのアイテムに対して1秒あたり1回の書き込みを実行できます。同様に、読み取り容量の単位を使用すると、最大1KBのサイズのアイテムの1秒あたり1回の強一貫性のある読み取り(または1秒あたり2回の結果整合性のある読み取り) を実行できます。 アイテムが大きいほど、より多くの容量が必要になります。1秒あたりに実行する必要のある読み取りまたは書き込みの数を見積もり、アイテムのサイズ(最も近いKBに切り上げ)を掛けることにより、必要な読み取りおよび書き込み容量の単位数を計算できます。

書き込みに必要な容量の単位=1秒あたりのアイテム書き込み数xアイテムサイズ(最も近いKBに切り上げ)

読み取りに必要な容量の単位*=1秒あたりのアイテム読み取り数xアイテムサイズ(最も近いKBに切り上げ)*結果整合性のある読み取りを使用すると、1秒あたりの読み取りで2倍のスループットが得られます。

[強調鉱山]

ただし、実際のユースケースでこれらの計算を正しく行うことは複雑になる可能性があります。それに応じて、AmazonDynamoDBのプロビジョニングされたスループットガイドラインなどの詳細も確認してください。

于 2012-02-24T00:24:23.950 に答える
1

私の推測では、彼らは意図的にそれを明示的に述べていないでしょう。月や星の位置に応じて変更/地域差がある/依存する可能性があります。または、情報を公開すると悪用が助長されます。最悪のシナリオに基づいて計算を行います。

于 2012-02-23T23:36:41.193 に答える
1

AWSから:

DynamoDBは現在、最大5分(300秒)の未使用の読み取りおよび書き込み容量を保持しています

DynamoDBは、パーティションごとのスループットプロビジョニングにある程度の柔軟性を提供します。パーティションのスループットを十分に活用していない場合、DynamoDBは未使用の容量の一部を保持して、後のスループット使用量のバーストに備えます。DynamoDBは現在、最大5分(300秒)の未使用の読み取りおよび書き込み容量を保持しています。読み取りまたは書き込みアクティビティがときどきバーストする間、これらの追加の容量ユニットは非常に迅速に消費される可能性があります。テーブルに定義した1秒あたりのプロビジョニングされたスループット容量よりもさらに高速です。ただし、常に使用可能なバースト容量に依存するようにアプリケーションを設計しないでください。DynamoDBは、事前の通知なしに、バックグラウンドメンテナンスやその他のタスクにバースト容量を使用できます。

于 2016-12-31T11:48:44.507 に答える
0

テーブルの1つに' write-limit'を設定します。10 units/secCloudwatchグラフ(画像を参照)は、これを1単位超えたことを示しています(11 writes/sec)。小さな小刻みに動く部屋があると思います(<= 10%)。繰り返しますが、私はただ仮定しています...

于 2012-04-05T12:33:25.490 に答える
-2

https://aws.amazon.com/blogs/developer/rate-limited-scans-in-amazon-dynamodb/

google guavaライブラリを使用してrateLimiterクラスを使用し、消費容量を制限することができます。

于 2017-03-20T11:08:51.747 に答える