本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用隨需容量模式的 DynamoDB 資料表會自動適應應用程式的流量。不過,使用隨需模式的資料表仍可能會調節。本主題討論如何針對隨需資料表的常見調節問題進行疑難排解。
流量超過先前峰值的兩倍
如果您在 30 分鐘內超過先前流量峰值的兩倍,則可能會遇到限流。在您超過先前流量的峰值之前,我們建議您將流量成長至少分散 30 分鐘。若要監控資料表的流量,請使用 Amazon CloudWatch 中的 ConsumedReadCapacityUnits
指標。如需詳細資訊,請參閱DynamoDB 指標和維度。
對於新的隨需資料表,您可以立即驅動最多 4,000 個寫入請求單位或每秒 12,000 個讀取請求單位。
對於您切換到隨需容量模式的現有資料表,上一個尖峰是下列其中一個值:
-
資料表先前佈建輸送量的一半
-
具有隨需容量模式的新建立資料表的設定
如需詳細資訊,請參閱隨需容量模式的初始輸送量。
流量超過每個分割區的上限
資料表或 GSI 的每個分割區每秒最多可提供 3,000 個讀取請求單位或 1,000 個寫入請求單位。如果傳送至分割區的流量超過此限制,分割區可能會受到調節。若要解決此問題,請採取下列動作:
-
使用適用於 DynamoDB 的 CloudWatch Contributor Insights 來識別資料表中最常存取和調節的金鑰。
-
將請求隨機化到資料表,以便對熱分割區索引鍵的請求會隨時間分佈。如需詳細資訊,請參閱使用寫入碎片在 DynamoDB 資料表中平均分配工作負載。
熱鍵可能會導致調節問題
在 DynamoDB 中,沒有高基數的分割區索引鍵可能會導致許多請求僅鎖定幾個分割區。如果產生的熱分割區超過每秒 3,000 個 RCU 或 1,000 個 WCU 的分割區限制,可能會導致限流。
診斷工具 CloudWatch Contributor Insights (CCI) 可以透過提供每個資料表項目存取模式的 CCI 圖形,協助您偵錯此問題。您可以持續監控 DynamoDB 資料表中最常存取的索引鍵和其他流量趨勢。如需 CloudWatch Contributor Insights 的詳細資訊,請參閱適用於 DynamoDB 的 CloudWatch Contributor Insights。如需詳細資訊,請參閱 設計分割區索引鍵以在 DynamoDB 中分配工作負載和選擇正確的 DynamoDB 分割區金鑰。 DynamoDB
流量超過每個資料表的帳戶配額
對於隨需資料表,資料表層級讀取輸送量和資料表層級寫入輸送量配額適用於帳戶層級。根據預設,資料表輸送量最多有 40,000 個讀取請求單位,最多有 40,000 個寫入請求單位。如果對資料表的流量超過每個資料表的帳戶配額以取得輸送量,則資料表可能會遇到限流。若要解決此問題,請使用 Service Quotas 主控台來增加您帳戶的資料表層級讀取輸送量和寫入輸送量配額。
資料表的全域次要索引已調節
如果您的 DynamoDB 資料表有正在調節的次要全域索引,則調節可能會在基礎資料表上建立背壓調節。如需詳細資訊,請參閱 全域次要索引上的調節如何影響我的 Amazon DynamoDB 資料表
流量超過設定的輸送量上限
如果您隨需資料表的讀取或寫入操作超過預先定義的輸送量限制,資料表將暫時受到限制,且您會收到 ThrottlingException 錯誤訊息。
根據您的使用案例完成下列動作:
-
若要增加或關閉最大資料表輸送量設定,請使用 UpdateTable API。
-
等待並重試請求。請參閱 錯誤重試和指數退避。
-
若要監控為資料表或全域次要索引設定的輸送量上限,請使用 CloudWatch 主控台中的 OnDemandMaxReadRequestUnits和 OnDemandMaxWriteRequestUnits指標。