Warum wird meine On-Demand-Tabelle in DynamoDB gedrosselt?
Meine On-Demand-Tabelle in Amazon DynamoDB wird gedrosselt und ich weiß nicht warum.
Lösung
DynamoDB-Tabellen, die den On-Demand-Kapazitätsmodus nutzen, passen sich automatisch an das Datenverkehrsaufkommen der Anwendung an. Die folgenden Szenarien können jedoch dazu führen, dass die On-Demand-DynamoDB-Tabellen gedrosselt werden.
Der Datenverkehr hat sich im Vergleich zum vorherigen Spitzenwert mehr als verdoppelt
DynamoDB-On-Demand-Tabellen können gedrosselt werden, wenn der Datenverkehr innerhalb eines 30-minütigen Zeitfensters das Doppelte des vorherigen Spitzendurchsatzes übersteigt.
Um dieses Problem zu lösen, skaliere den Datenverkehr schrittweise mindestens 30 Minuten lang, bevor du das Doppelte des vorherigen Spitzenwerts erreichst. Verwende die Metriken ConsumedReadCapacityUnits und ConsumedWriteCapacityUnits in Amazon CloudWatch, um den Durchsatz der Tabelle zu überwachen. Um die Drosselung bei Bedarf zu überwachen, verwende ReadMaxOnDemandThroughputThrottleEvents und WriteMaxOnDemandThroughputThrottleEvents.
Für neue On-Demand-Tabellen kannst du sofort und gleichzeitig bis zu 4.000 Schreibanforderungseinheiten und 12.000 Leseanforderungseinheiten ausführen. Verwende für geplante Ereignisse oder Ereignisse mit Spitzenwerten den Warm-Durchsatz, um die Kapazität der Tabelle an die erwartete Nutzung anzupassen.
Wenn du eine vorhandene Tabelle in den On-Demand-Kapazitätsmodus schaltest, entspricht der vorherige Spitzenwert einem der folgenden Werte:
- Neue Tabellen beginnen mit 4 000 Schreibkapazitätseinheiten (WCU) und 12 000 Lesekapazitätseinheiten (RCU).
- Wenn du die Tabelle über dem Startwert bereitgestellt hast, behält sie die höhere Kapazität bei.
- Die Anfangskapazität kann bei anhaltenden Nutzungsmustern höher sein.
Der Datenverkehr überschreitet den maximalen Durchsatz für jede Partition
Jede Partition in der Tabelle kann gleichzeitig bis zu 1.000 Schreibanforderungseinheiten und 3.000 Leseanforderungseinheiten bedienen. Wenn der Datenverkehr zu einer Partition dieses Kontingent überschreitet, wird die Partition möglicherweise gedrosselt.
Gehe wie folgt vor, um dieses Problem zu beheben:
- Verwende CloudWatch Contributor Insights für DynamoDB, um die am häufigsten aufgerufenen und gedrosselten Schlüssel in der Tabelle zu ermitteln.
- Verwende erweiterte Metriken, um zu überprüfen, ob Partitionsdrosselungsereignisse die Ursache sind.
- Verwende Write-Sharding, um Anforderungen gleichmäßig auf die Partitionen zu verteilen.
- Optimiere die Fehlerwiederholungsversuche und deine exponentielle Backoff-Strategie.
Der Datenverkehr übersteigt das Kontingent deines Kontos pro Tabelle
Standardmäßig haben On-Demand-Tabellen Kontingente auf AWS-Kontoebene von 40 000 WCUs und 40 000 RCUs für jede Tabelle. Wenn der Datenverkehr zu einer Tabelle die Durchsatzkontingente überschreitet, wird die Tabelle möglicherweise gedrosselt.
Gehe wie folgt vor, um dieses Problem zu beheben:
- Vergleiche in CloudWatch ConsumedReadCapacityUnits und ConsumedWriteCapacityUnits mit deinen aktuellen Kontingenten.
- Fordere eine Kontingenterhöhung auf Kontoebene für die Lese- und Schreibkapazitätseinheiten auf Tabellenebene an.
Der GSI der Tabelle wird gedrosselt
Wenn die DynamoDB-Tabelle einen GSI hat, der gedrosselt wird, kann die Drosselung zu einer Drosselung des Rückdrucks in der Basistabelle führen. Weitere Informationen findest du unter Understanding GSI write throttling and back pressure in DynamoDB (Grundlegendes zur Schreibdrosselung und zum Rückdruck auf dem globalen sekundären Index (GSI) in DynamoDB) und unter Using GSIs in DynamoDB (Verwenden von GSIs in DynamoDB).
Der Datenverkehr überschreitet den maximal konfigurierten Durchsatz
Wenn du maximale Durchsatzkontingente für die On-Demand-Tabelle konfiguriert hast, erhältst du den Fehler „ThrottlingException“, wenn du die Durchsatzkontingente überschreitest.
Ergreife je nach Anwendungsfall eine der folgenden Maßnahmen:
- Verwende die UpdateTable-API, um die Einstellung für den maximalen Tabellendurchsatz zu erhöhen oder zu deaktivieren.
- Warte einen Moment und wiederhole dann die Anforderung. Weitere Informationen findest du unter Error retries and exponential backoff (Fehlerwiederholungsversuche und exponentielles Backoff).
Verwende die Metriken OnDemandMaxReadRequestUnits und OnDemandMaxWriteRequestUnits in CloudWatch, um den maximalen Durchsatz zu überwachen, den du für eine Tabelle oder einen GSI konfiguriert hast.
Weitere Informationen
DynamoDB throttling resolution guide (Leitfaden zur Behebung der DynamoDB-Drosselung)
Wie wähle ich einen guten Primärschlüssel für meine Amazon DynamoDB-Tabelle aus?
Warum unterscheiden sich die Metriken in der DynamoDB-Konsole von den CloudWatch-Metriken?
Quotas in DynamoDB (Kontingente in DynamoDB)
Introducing configurable maximum throughput for DynamoDB on-demand (Einführung eines konfigurierbaren maximalen Durchsatzes für DynamoDB On-Demand)
- Themen
- Database
- Tags
- Amazon DynamoDB
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor 3 Jahren