我的隨需 Amazon DynamoDB 資料表發生限流,但我不知道原因。
使用隨需容量模式的 DynamoDB 資料表會自動依應用程式的流量量調整容量。然而,以下情況可能會導致您的隨需 DynamoDB 資料表遭到限流。
當流量在 30 分鐘內超過先前峰值輸送量的兩倍時,DynamoDB 隨需資料表可能會遭到限流。
若要解決此問題,請在達到先前峰值兩倍之前,至少用 30 分鐘逐步增加流量。若要監控資料表的輸送量,請在 Amazon CloudWatch 中使用 ConsumedReadCapacityUnits 和 ConsumedWriteCapacityUnits 指標。若要監控隨需限流,請使用 ReadMaxOnDemandThroughputThrottleEvents 和 WriteMaxOnDemandThroughputThrottleEvents。
對於新的隨需資料表,您可以立即驅動最多 4,000 寫入請求單位、12,000 讀取請求單位,或兩者的線性組合。對於計畫或高峰事件,請使用預熱輸送量將資料表容量調整至預期使用量。
如果您將現有資料表切換為隨需容量模式,則先前峰值為下列其中之一:
資料表中的每個分區可同時提供最多 1,000 個寫入請求單位和 3,000 個讀取請求單位。如果分區的流量超過此配額,則該分區可能會遭到限流。
若要解決此問題,請完成下列步驟:
預設情況下,隨需資料表每個資料表的帳戶級配額為 40,000 WCU 和 40,000 RCU。如果資料表的流量超過輸送量配額,則資料表可能會遭到限流。
如果 DynamoDB 資料表的 GSI 發生限流,則限流可能會在基礎資料表上產生反壓限流。如需更多資訊,請參閱了解 DynamoDB 中全域次要索引 (GSI) 寫入限流與反壓和在 DynamoDB 中使用 GSI。
如果您為隨需資料表設定了最大輸送量配額,當超過配額時會收到「ThrottlingException」錯誤。
根據您的使用情況,採取下列其中一個動作:
若要監控您為資料表或 GSI 設定的最大輸送量,請在 CloudWatch 中使用 OnDemandMaxReadRequestUnits 和 OnDemandMaxWriteRequestUnits 指標。
DynamoDB 限流解決指南)
如何為 DynamoDB 資料表選擇良好的主索引鍵?
為何我的 DynamoDB 指標與 CloudWatch 指標不同?
DynamoDB 配額
為 DynamoDB 隨需模式推出可設定的最大輸送量