Warum wird meine On-Demand-Tabelle in DynamoDB gedrosselt?

Lesedauer: 3 Minute
0

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 Datenverkehrsvolumen Ihrer Anwendung an. Tabellen, die den On-Demand-Modus nutzen, können jedoch immer noch gedrosselt werden. Die folgenden Gründe können dazu führen, dass Ihre DB-Tabelle gedrosselt wird.

Der Datenverkehr ist mehr als doppelt so hoch wie beim vorherigen Spitzenwert

Wenn Sie innerhalb von 30 Minuten das Doppelte der Spitzenwerte Ihres vorherigen Datenverkehrs überschreiten, kann es zu einer Drosselung kommen. Bevor Sie den Spitzenwert Ihres vorherigen Datenverkehrs überschreiten, hat es sich bewährt, Ihren Datenverkehrszuwachs über mindestens 30 Minuten zu verteilen. Verwenden Sie die Metrik ConsumedReadCapacityUnits in Amazon CloudWatch, um den Datenverkehr zur Tabelle zu überwachen. Weitere Informationen finden Sie unter DynamoDB-Messwerte und Dimensionen.

Bei neuen On-Demand-Tabellen können Sie sofort bis zu 4.000 Schreibanforderungen, 12.000 Leseanforderungen oder eine lineare Kombination aus beiden erreichen.

Für eine bestehende Tabelle, für die Sie in den On-Demand-Kapazitätsmodus gewechselt haben, entspricht der vorherige Spitzenwert einem der folgenden Werte:

  • Die Hälfte des zuvor bereitgestellten Durchsatzes für die Tabelle
  • Die Einstellung für eine neu erstellte Tabelle mit On-Demand-Kapazitätsmodus

Weitere Informationen finden Sie unter Initialer Durchsatz und Skalierungseigenschaften.

Der Datenverkehr überschreitet das Maximum pro Partition

Jede Partition in der Tabelle kann bis zu 3.000 Leseanforderungen, 1.000 Schreibanforderungen oder eine lineare Kombination aus beiden bedienen. Wenn der Datenverkehr zu einer Partition dieses Kontingent überschreitet, wird die Partition möglicherweise gedrosselt.

Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  1. Verwenden Sie CloudWatch Contributor Insights für DynamoDB, um die am häufigsten aufgerufenen und gedrosselten Schlüssel in Ihrer Tabelle zu ermitteln.
  2. Ordnen Sie die Anfragen an die Tabelle nach dem Zufallsprinzip an, sodass die Anfragen an die heißen Partitionsschlüssel über einen längeren Zeitraum verteilt werden. Weitere Informationen finden Sie unter Verwenden von Schreib-Sharding zur gleichmäßigen Verteilung von Arbeitslasten.

Der Datenverkehr übersteigt das Kontingent Ihres Kontos pro Tabelle

Für On-Demand-Tabellen gelten die Kontingente für den Lese- und Schreibdurchsatz auf Tabellenebene auf Kontoebene. Standardmäßig ist der Tabellendurchsatz auf maximal 40.000 Leseanforderungen und maximal 40.000 Schreibanforderungen festgelegt. Wenn der Datenverkehr zu einer Tabelle die Durchsatzkontingente pro Tabelle überschreitet, wird die Tabelle möglicherweise gedrosselt.

Wenn Sie dieses Problem beheben wollen, fordern Sie eine Erhöhung des Kontingents auf Kontoebene für den Lese- und Schreibdurchsatz auf Tabellenebene an.

Der globale sekundäre Index Ihrer Tabelle wird gedrosselt

Wenn Ihre DynamoDB-Tabelle einen sekundären globalen Index hat, der gedrosselt wird, kann die Drosselung zu Gegendruck-Drosselungen in der Basistabelle führen. Weitere Informationen finden Sie unter Wie wirkt sich die Drosselung meines globalen sekundären Index auf meine Amazon DynamoDB-Tabelle aus? und Verwendung globaler sekundärer Indizes in DynamoDB.

Der Datenverkehr überschreitet den maximal konfigurierten Durchsatz

Wenn Sie den maximalen Lese- oder Schreibdurchsatz überschreiten, den Sie für Ihre On-Demand-Tabelle festgelegt haben, wird Ihre Tabelle gedrosselt und Sie erhalten die Fehlermeldung ThrottlingException

Führen Sie je nach Anwendungsfall die folgenden Aktionen aus:

Verwenden Sie die MetrikenOnDemandMaxRequestUnits und OnDemandMaxWriteRequestUnits in der CloudWatch-Konsole, um den maximalen Durchsatz zu überwachen, der für eine Tabelle oder einen globalen sekundären Index konfiguriert ist.

Ähnliche Informationen

Burst-Kapazität und Anpassungsfähigkeit

Wie wähle ich den richtigen Primärschlüssel für meine Amazon DynamoDB-Tabelle aus?

Warum unterscheiden sich die Messwerte in der DynamoDB-Konsole von den CloudWatch-Messwerten?

Service-, Konto- und Tabellenkontingente in Amazon DynamoDB

Einführung eines konfigurierbaren maximalen Durchsatzes für Amazon DynamoDB On-Demand

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Monaten