1- Der Durchsatz im Schlüsselbereich wurde überschritten (heiße Partitionen) - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

1- Der Durchsatz im Schlüsselbereich wurde überschritten (heiße Partitionen)

Amazon DynamoDB erzwingt spezifische Durchsatzgrenzen auf Partitionsebene sowohl für Tabellen als auch für den globalen Sekundärindex (GSI). Jede Partition hat eine maximale Anzahl von Lesekapazitätseinheiten (RCUs) und Schreibkapazitätseinheiten (WCUs) pro Sekunde. Wenn Partitionen konzentrierten Datenverkehr empfangen, der diese Grenzwerte überschreitet, kommt es zu einer Drosselung, während andere Operationen möglicherweise nicht ausgelastet werden, wodurch „heiße Partitionen“ entstehen. Die Drosselung auf Partitionsebene von DynamoDB erfolgt unabhängig von Lese- und Schreibvorgängen. Eine Partition kann Lesevorgänge drosseln, während Schreibvorgänge normal fortgesetzt werden, oder umgekehrt. Diese Drosselung kann auch dann auftreten, wenn Ihre Tabelle oder GSI über eine ausreichende Gesamtkapazität verfügt. Um mehr zu erfahren über:

Wenn einzelne Partitionen ihre Durchsatzgrenzen überschreiten, gibt DynamoDB in der KeyRangeThroughputExceeded Drosselungsausnahme einen Einschränkungsgrundtyp zurück. Die Informationen geben an, dass auf einer Partition viel Verkehr herrscht und welcher Vorgangstyp (Lesen oder Schreiben) das Problem verursacht.

Der Durchsatz im Schlüsselbereich übertraf die Maßnahmen zur Risikominderung

Dieser Abschnitt enthält Anleitungen zur Lösung von Drosselungsszenarien auf Partitionsebene. Bevor Sie dieses Handbuch verwenden, stellen Sie sicher, dass Sie die spezifischen Drosselungsgründe anhand der Ausnahmebehandlung Ihrer Anwendung identifiziert und den Amazon-Ressourcennamen (ARN) der betroffenen Ressource ermittelt haben. Informationen zum Abrufen der Gründe für die Drosselung und zur Identifizierung gedrosselter Ressourcen finden Sie unter. DynamoDB-Drosselungsdiagnose-Framework

Bevor Sie sich mit bestimmten Drosselungsszenarien befassen, sollten Sie zunächst überprüfen, ob das Problem automatisch behoben wird:

  • DynamoDB passt sich durch seinen automatischen split-for-heat Mechanismus häufig an heiße Partitionen an. Wenn Sie Drosselungsereignisse sehen, die nach einer kurzen Zeit aufhören, hat sich Ihre Tabelle möglicherweise bereits angepasst, indem die heiße Partition aufgeteilt wurde. Wenn Partitionen aufgeteilt werden, verwaltet jede neue Partition einen kleineren Teil des Schlüsselraums, was dazu beitragen kann, die Last gleichmäßiger zu verteilen. In vielen Fällen sind keine weiteren Maßnahmen erforderlich, da DynamoDB das Problem automatisch behoben hat.

    Weitere Informationen zu diesem split-for-heatMechanismus finden Sie unter. Weitere Ressourcen

Falls die Drosselung weiterhin besteht, finden Sie in den unten aufgeführten spezifischen Drosselungsszenarien gezielte Abhilfemaßnahmen:

TableReadKeyRangeThroughputExceeded

Wenn das passiert

Die Nutzungsrate einer oder mehrerer Partitionen in Ihrer DynamoDB-Tabelle überschreitet den Grenzwert für den Lesedurchsatz der Partition. Diese Drosselung erfolgt unabhängig von der bereitgestellten Gesamtkapazität Ihrer Tabelle und betrifft sowohl bereitgestellte als auch On-Demand-Tabellen. Sie können die CloudWatch Messwerte überwachen, um Ihr Allgemeine Diagnose und Überwachung Drosselungsereignis zu analysieren.

Optionen zur Problembehebung

Erwägen Sie die folgenden Schritte, um Ihre Drosselungsereignisse zu beheben:

Sowohl für den Bereitstellungs- als auch für den On-Demand-Modus:

  • Kapazität vor dem Warmlaufen: Wenn die Drosselung weiterhin besteht, überprüfen Sie, ob Ihre Tabelle durch die Kapazität begrenzt ist. Grundlegendes zum DynamoDB-Warmdurchsatz Verwenden Sie den Warm-Durchsatz oder erhöhen Sie die bereitgestellte Lesekapazität im Voraus, um den erwarteten Anstieg des Datenverkehrs zu vermeiden. Durch die Erhöhung des Durchsatzes im Warmbetrieb ist Ihre Tabelle besser in der Lage, plötzliche Datenverkehrsspitzen zu bewältigen, bevor es zu einer Drosselung kommt. Im Laufe der Zeit kann DynamoDB ausgelastete Partitionen auf der Grundlage von beobachteten Nutzungsmustern aufteilen, wenn sich Ihr aktueller Durchsatz konstant dem warmen Durchsatz nähert.

  • Identifizieren Sie Ihre Hotkeys: Wenn die Tabelle das Problem nicht automatisch aufgelöst hat und Ihr Durchsatz im Warmbetrieb hoch ist oder eine Erhöhung des Durchsatzes nicht geholfen hat, müssen Sie bestimmte Tastenkombinationen identifizieren. Verwenden Sie Identifizieren von Tastenkombinationen mithilfe von CloudWatch Contributor Insights diese Option, um festzustellen, ob bestimmte Partitionsschlüsselwerte aktuell sind. Dies ist ein erster Schritt, um Ihre Maßnahmen zur Schadensbegrenzung zielgerichtet zu ergreifen. Beachten Sie, dass die Identifizierung möglicherweise nicht immer einfach ist, insbesondere bei Partitionen im laufenden Betrieb (bei denen verschiedene Partitionen im Laufe der Zeit heiß werden) oder wenn die Drosselung durch Operationen wie Scans ausgelöst wird. Für diese komplexen Szenarien müssen Sie möglicherweise die Zugriffsmuster Ihrer Anwendung analysieren und sie mit dem Zeitpunkt der Drosselung korrelieren.

  • Je nach Anwendungsfall sollten Sie eventuell konsistente Lesevorgänge in Betracht ziehen: Wechseln Sie von stark konsistenten Lesevorgängen zu eventuell konsistenten Lesevorgängen, die nur die Hälfte verbrauchen RCUs und Ihre effektive Lesekapazität sofort verdoppeln können. Bewährte Methoden zur Implementierung von Eventually Consistent Reads zur Reduzierung des Lesekapazitätsverbrauchs finden Sie unterDynamoDB-Lesekonsistenz.

  • Verbessern Sie das Design der Partitionsschlüssel: Als langfristige Lösung sollten Sie erwägen, den Zugriff gleichmäßiger auf die Partitionen Verbesserung des Designs von Partitionsschlüsseln zu verteilen. Dieser Ansatz bietet häufig die umfassendste Lösung für Probleme mit häufig auftretenden Partitionen, indem die eigentliche Ursache behoben wird. Er erfordert jedoch eine sorgfältige Planung, da er mit erheblichen Migrationsherausforderungen verbunden ist.

TableWriteKeyRangeThroughputExceeded

Wenn das passiert

Die Nutzungsrate einer oder mehrerer Partitionen in Ihrer DynamoDB-Tabelle überschreitet das Schreibdurchsatzlimit der Partition. Diese Drosselung erfolgt unabhängig von der bereitgestellten Gesamtkapazität Ihrer Tabelle und betrifft sowohl bereitgestellte als auch On-Demand-Tabellen. Sie können die CloudWatch Messwerte überwachen, um Ihr Allgemeine Diagnose und Überwachung Drosselungsereignis zu analysieren.

Optionen zur Problembehebung

Erwägen Sie die folgenden Schritte, um Ihre Drosselungsereignisse zu beheben:

Sowohl für den Bereitstellungs- als auch für den On-Demand-Modus:

  • Kapazität vor dem Warmlaufen: Wenn die Drosselung weiterhin besteht, überprüfen Sie, ob Ihre Tabelle durch die Kapazität begrenzt ist. Grundlegendes zum DynamoDB-Warmdurchsatz Verwenden Sie den Warmdurchsatz oder erhöhen Sie die bereitgestellte Schreibkapazität im Voraus, um den erwarteten Anstieg des Datenverkehrs zu vermeiden. Durch die Erhöhung des Durchsatzes im Warmbetrieb ist Ihre Tabelle besser in der Lage, plötzliche Datenverkehrsspitzen zu bewältigen, bevor es zu einer Drosselung kommt. Im Laufe der Zeit kann DynamoDB ausgelastete Partitionen auf der Grundlage von beobachteten Nutzungsmustern aufteilen, wenn sich Ihr aktueller Durchsatz konstant dem warmen Durchsatz nähert.

  • Identifizieren Sie Ihre Hotkeys: Wenn die Tabelle das Problem nicht automatisch aufgelöst hat und Ihr Durchsatz im Warmbetrieb hoch ist oder eine Erhöhung des Durchsatzes nicht geholfen hat, müssen Sie bestimmte Tastenkombinationen identifizieren. Verwenden Sie Identifizieren von Tastenkombinationen mithilfe von CloudWatch Contributor Insights diese Option, um festzustellen, ob bestimmte Partitionsschlüsselwerte aktuell sind. Dies ist ein erster Schritt, um Ihre Maßnahmen zur Schadensbegrenzung zielgerichtet zu ergreifen. Beachten Sie die folgenden gängigen Muster:

    • Wenn Sie feststellen, dass derselbe Partitionsschlüssel häufig in Ihren Drosselungsdaten vorkommt, deutet dies auf eine konzentrierte Tastenkombination hin.

    • Wenn Sie keine wiederholten Schlüssel sehen, die Daten aber geordnet schreiben (z. B. sequenzielle Zeitstempel oder scanbasierte Operationen, die sich an die Reihenfolge der Schlüsselräume halten), haben Sie wahrscheinlich Partitionen im laufenden Betrieb, bei denen verschiedene Schlüssel im Laufe der Zeit heiß werden, wenn Ihre Schreibvorgänge den Schlüsselraum durchlaufen.

    Beachten Sie, dass Schreibeinschränkungen auch bei Vorgängen BatchWriteItem oder Transaktionen auftreten können, die sich auf mehrere Elemente gleichzeitig auswirken. Wenn einzelne Elemente in einer BatchWriteItem Anforderung gedrosselt werden, überträgt DynamoDB diese Drosselungsfehler nicht an den Anwendungscode. Stattdessen gibt DynamoDB Informationen über die unverarbeiteten Elemente in der Antwort zurück, die Ihre Anwendung verarbeiten muss, indem sie diese spezifischen Elemente erneut versucht. Bei Transaktionen schlägt der gesamte Vorgang fehl und es wird angegeben, TransactionCanceledException ob bei einem Element eine Drosselung auftritt. Für diese komplexen Szenarien müssen Sie möglicherweise die Schreibmuster und Datenaufnahme-Workflows Ihrer Anwendung analysieren, sie mit dem Zeitpunkt von Drosselungsereignissen korrelieren und geeignete Strategien zur Behandlung von Wiederholungsversuchen implementieren.

  • Verbessern Sie das Design der Partitionsschlüssel: Als langfristige Lösung sollten Sie erwägen, den Zugriff gleichmäßiger auf die Partitionen Verbesserung des Designs von Partitionsschlüsseln zu verteilen. Dieser Ansatz bietet häufig die umfassendste Lösung für Probleme mit häufig auftretenden Partitionen, indem die eigentliche Ursache behoben wird. Er erfordert jedoch eine sorgfältige Planung, da er mit erheblichen Migrationsherausforderungen verbunden ist.

IndexReadKeyRangeThroughputExceeded

Wenn das passiert

Die Nutzungsrate einer oder mehrerer Partitionen in Ihrer DynamoDB-GSI überschreitet den Grenzwert für den Lesedurchsatz der Partition. Diese Drosselung erfolgt unabhängig von der bereitgestellten Gesamtkapazität Ihrer GSI und betrifft sowohl bereitgestellte als auch On-Demand-Tabellen. Sie können die CloudWatch Messwerte überwachen, um Ihr Drosselungsereignis Allgemeine Diagnose und Überwachung zu analysieren.

Optionen zur Problembehebung

Erwägen Sie die folgenden Schritte, um Ihre Drosselungsereignisse zu beheben:

  • Kapazität vor dem Warmlaufen: Wenn die Drosselung weiterhin besteht, überprüfen Sie, ob Ihr GSI durch seine Kapazität begrenzt ist. Grundlegendes zum DynamoDB-Warmdurchsatz Verwenden Sie den Warm-Durchsatz oder erhöhen Sie die bereitgestellte Lesekapazität im Voraus, um den erwarteten Anstieg des Datenverkehrs zu vermeiden. Durch die Erhöhung des Durchsatzes im Warmbetrieb ist Ihre GSI besser in der Lage, plötzliche Datenverkehrsspitzen zu bewältigen, bevor es zu einer Drosselung kommt. Im Laufe der Zeit kann DynamoDB ausgelastete Partitionen auf der Grundlage von beobachteten Nutzungsmustern aufteilen, wenn sich Ihr aktueller Durchsatz konstant dem warmen Durchsatz nähert.

  • Identifizieren Sie Ihre Hotkeys: Wenn die GSI das Problem nicht automatisch gelöst hat und Ihr Durchsatz im Warmbetrieb hoch ist oder eine Erhöhung des Durchsatzes nicht geholfen hat, müssen Sie bestimmte Hotkeys identifizieren. Verwenden Sie diese OptionIdentifizieren von Tastenkombinationen mithilfe von CloudWatch Contributor Insights, um festzustellen, ob bestimmte Partitionsschlüsselwerte aktuell sind. Dies ist ein erster Schritt, um Ihre Maßnahmen zur Schadensbegrenzung zielgerichtet zu ergreifen. Beachten Sie GSIs, dass sich die Verteilung der Partitionsschlüssel erheblich von Ihrer Basistabelle unterscheiden kann, wodurch unterschiedliche Tastenkombinationen entstehen.

  • Neugestaltung der GSI-Partitionsschlüssel: Überlegen Sie, ob Ihr GSI-Schlüsselentwurf möglicherweise künstliche Hotspots (wie Statusflags, reine Datumsschlüssel oder boolesche Attribute) erzeugt, die Lesevorgänge auf eine kleine Anzahl von Partitionen konzentrieren. Erwägen Sie die Verwendung zusammengesetzter Schlüssel, die das Attribut mit niedriger Kardinalität mit einem Attribut mit hoher Kardinalität kombinieren (z. B. „ACTIVE #customer123" statt nur „ACTIVE“), oder wenden Sie Verwenden von Write-Sharding zur gleichmäßigen Verteilung von Workloads in Ihrer DynamoDB-Tabelle Techniken auf die Basistabellenelemente an, die sich auf die GSI-Verteilung auswirken, um Schreibvorgänge auf mehrere Partitionen zu verteilen. Für die Abfrage von Shard-Daten ist zwar zusätzliche Anwendungslogik erforderlich, um die Ergebnisse zu aggregieren, doch dieser Ansatz verhindert Drosselungen, indem die Zugriffsmuster gleichmäßiger verteilt werden.

IndexWriteKeyRangeThroughputExceeded

Wenn das passiert

Die Nutzungsrate einer oder mehrerer Partitionen in Ihrer DynamoDB-GSI überschreitet das Schreibdurchsatzlimit der Partition. Diese Drosselung erfolgt unabhängig von der bereitgestellten Gesamtkapazität Ihrer GSI und betrifft sowohl bereitgestellte als auch On-Demand-Tabellen. Sie können die CloudWatch Messwerte überwachen, um Ihr Drosselungsereignis Allgemeine Diagnose und Überwachung zu analysieren.

Optionen zur Problembehebung

Erwägen Sie die folgenden Schritte, um Ihre Drosselungsereignisse zu beheben:

  • Neugestaltung des GSI-Partitionsschlüssels: Überprüfen Sie den Entwurf Ihres GSI-Partitionsschlüssels, um sicherzustellen, dass er über eine ausreichende Kardinalität (Eindeutigkeit) verfügt, um Schreibvorgänge gleichmäßig zu verteilen. Eine häufige Ursache für GSI-Schreibdrosselung ist die Verwendung von Attributen mit niedriger Kardinalität als GSI-Partitionsschlüssel (z. B. Statusflags mit nur wenigen möglichen Werten). Selbst wenn Ihre Basistabelle über gut verteilte Partitionsschlüssel verfügt, kann es bei Ihrer GSI dennoch zu heißen Partitionen kommen, wenn der Partitionsschlüssel Schreibvorgänge auf eine kleine Anzahl von Werten konzentriert. Wenn beispielsweise 80% Ihrer Elemente den Status „Active“ haben, führt dies zu einer stark beanspruchten Partition in einer statusbasierten globalen Datenbank. Erwägen Sie die Verwendung zusammengesetzter Schlüssel, die das Attribut mit niedriger Kardinalität mit einem Attribut mit hoher Kardinalität kombinieren (z. B. „ACTIVE #customer123" statt nur „ACTIVE“), oder wenden Sie Verwenden von Write-Sharding zur gleichmäßigen Verteilung von Workloads in Ihrer DynamoDB-Tabelle Techniken auf die Elemente der Basistabelle an, die sich auf die GSI-Verteilung auswirken, um Schreibvorgänge auf mehrere Partitionen zu verteilen. Für die Abfrage von Shard-Daten ist zwar zusätzliche Anwendungslogik erforderlich, um die Ergebnisse zu aggregieren, doch dieser Ansatz verhindert Drosselungen, indem die Zugriffsmuster gleichmäßiger verteilt werden.

  • Kapazität zum Vorwärmen: Prüfen Sie, ob Ihr GSI durch seine Kapazität begrenzt ist. Grundlegendes zum DynamoDB-Warmdurchsatz Verwenden Sie den Warm-Durchsatz oder erhöhen Sie die bereitgestellte Lesekapazität im Voraus, um den erwarteten Anstieg des Datenverkehrs zu berücksichtigen. Durch die Erhöhung des Durchsatzes im Warmbetrieb ist Ihre GSI besser in der Lage, plötzliche Datenverkehrsspitzen zu bewältigen, bevor es zu einer Drosselung kommt. Im Laufe der Zeit kann DynamoDB ausgelastete Partitionen auf der Grundlage von beobachteten Nutzungsmustern aufteilen, wenn sich Ihr aktueller Durchsatz konstant dem warmen Durchsatz nähert.

  • Optimieren Sie GSI-Prognosen: Wenden Sie Optimierung der GSI-Prognosen Techniken an, um das Schreibvolumen auf zu reduzieren. GSIs Durch die Projektion von weniger Attributen kann die Schreibkapazität, die bei jedem GSI-Update verbraucht wird, erheblich reduziert werden.

Allgemeine Diagnose und Überwachung

Bei der Behebung von Drosselungen auf Partitionsebene können verschiedene CloudWatch Messwerte dabei helfen, heiße Partitionen zu identifizieren und die Ursache zu bestätigen.

CloudWatch Wesentliche Metriken

Überwachen Sie diese wichtigen Kennzahlen, um die Drosselung auf Partitionsebene zu diagnostizieren:

Verfahren zur Problembehebung

Identifizieren von Tastenkombinationen mithilfe von CloudWatch Contributor Insights

Gehen Sie wie folgt vor, um zu ermitteln, welche Partitionsschlüssel die Drosselung verursachen.

  1. Aktivieren Sie CloudWatch Contributor Insights für Ihre Tabelle oder GSI, um die am stärksten gedrosselten Schlüssel zu verfolgen. Erwägen Sie, CloudWatch Contributor Insights kontinuierlich zu aktivieren, um Drosselungswarnungen in Echtzeit zu erhalten, indem Sie den Modus für gedrosselte Tasten verwenden. Dieser Modus konzentriert sich ausschließlich auf gedrosselte Anfragen, indem Ereignisse nur verarbeitet werden, wenn eine Drosselung eintritt. Diese gezielte Überwachung ist eine kostengünstige Methode, um Drosselungsprobleme kontinuierlich im Blick zu behalten.

  2. Identifizieren Sie, welche Schlüssel die Probleme mit der Hot-Partition verursachen.

  3. (Wenn der vollständige Modus „Zugriffstasten und gedrosselte Tasten“ aktiviert ist) Analysieren Sie die Zugriffsmuster im Zeitverlauf, um festzustellen, ob Tastenkombinationen konsistent sind oder nur in bestimmten Zeiträumen verwendet werden.

Verbesserung des Designs von Partitionsschlüsseln

Verwenden Sie diesen Ansatz, wenn Sie Ihr Tabellenschema ändern können, um den Datenverkehr besser auf die Partitionen zu verteilen. Wenn möglich, ist dies die effektivste langfristige Lösung für Probleme mit häufig auftretenden Partitionen. Im Idealfall sollte das Design der Partitionsschlüssel in der ersten Phase des Tabellenentwurfs sorgfältig geprüft werden.

Die Neugestaltung von Partitionsschlüsseln stellt eine grundlegende Änderung Ihres Datenmodells dar, die sich auf Ihr gesamtes Anwendungsökosystem auswirkt. Bevor Sie mit diesem Ansatz fortfahren, sollten Sie diese wesentlichen Einschränkungen sorgfältig abwägen:

  • Komplexität der Datenmigration: Die Neugestaltung von Partitionsschlüsseln erfordert die Migration aller vorhandenen Daten, was bei großen Tabellen ressourcenintensiv und zeitaufwändig sein kann.

  • Änderungen am Anwendungscode: Der gesamte Anwendungscode, der Lese- oder Schreibvorgänge in die Tabelle durchführt, muss aktualisiert werden, damit er die neue Schlüsselstruktur verwenden kann.

  • Auswirkungen auf die Produktion: Die Migration zu einem neuen Schlüsseldesign erfordert während der Umstellung häufig Ausfallzeiten oder komplexe Dual-Write-Strategien.

Umfassende Anleitungen und Prinzipien zum Design von Partitionsschlüsseln finden Sie unter Bewährte Methoden für die effektive Gestaltung und Verwendung von Partitionsschlüsseln in DynamoDB und. Entwerfen von Partitionsschlüsseln zur Verteilung Ihrer Arbeitslast in DynamoDB

Optimierung der GSI-Prognosen

Überprüfen Sie die Abfragemuster Ihrer Anwendung, um genau zu bestimmen, welche Attribute bei der Abfrage des globalen Index verfügbar sein müssen, und beschränken Sie Ihre Prognosen auf nur diese Attribute. Wenn Sie Attribute aktualisieren, die nicht in einen globalen Index projiziert werden, findet auf diesem globalen Index kein Schreibvorgang statt, wodurch der Schreibdurchsatz bei Aktualisierungen reduziert wird. Diese gezielte Projektionsstrategie optimiert sowohl die Leistung als auch die Kosten und unterstützt gleichzeitig die Abfrageanforderungen Ihrer Anwendung. Beachten Sie, dass die Projektion von weniger Attributen den Schreibkapazitätsverbrauch reduziert, aber möglicherweise zusätzliche Lesevorgänge in der Basistabelle erforderlich macht.

Weitere Informationen zu effizienten Projektionsstrategien finden Sie unter Bewährte Methoden für die Verwendung von Sekundärindizes in DynamoDB.

Weitere Ressourcen

Die folgenden Blogbeiträge enthalten praktische Beispiele und praktische Details zu den in diesem Handbuch behandelten Konzepten: