2- Der bereitgestellte Durchsatz wurde überschritten - 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.

2- Der bereitgestellte Durchsatz wurde überschritten

Die Drosselung der bereitgestellten Kapazität erfolgt, wenn die Nutzungsrate Ihrer Anwendung die für Ihre Tabellen oder globalen sekundären Indizes konfigurierten Lese- oder Schreibkapazitätseinheiten (RCUs/WCUs) überschreitet. DynamoDB bietet zwar Burst-Kapazität zur Bewältigung gelegentlicher Datenverkehrsspitzen, aber anhaltende Anfragen, die Ihre bereitgestellten Grenzwerte überschreiten, führen zu Drosselung. In diesem Fall gibt DynamoDB in der ProvisionedThroughputExceeded Drosselungsausnahme einen Einschränkungsgrundtyp zurück. Der Grund gibt an, ob das Problem bei Lese- oder Schreibvorgängen liegt und ob es sich auf die Basistabelle oder einen globalen Sekundärindex auswirkt.

Die Drosselung kann unabhängig davon erfolgen, ob Auto Scaling aktiviert ist. Auto Scaling passt sich dem steigenden Verbrauch an, reagiert jedoch nicht sofort und ist durch die von Ihnen konfigurierten maximalen Kapazitätsgrenzen eingeschränkt. Das bedeutet, dass es bei plötzlichen Verkehrsspitzen oder wenn der Verbrauch Ihre maximalen Auto Scaling Scaling-Grenzwerte überschreitet, immer noch zu Drosselungen kommen kann.

Der bereitgestellte Durchsatz übertraf die Maßnahmen zur Risikominderung

Dieser Abschnitt enthält Anleitungen zur Lösung von Szenarien zur Drosselung bereitgestellter Kapazitäten. Bevor Sie dieses Handbuch verwenden, stellen Sie sicher, dass Sie den spezifischen Grund für die Drosselung 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 prüfen, ob es sich bei der Drosselung tatsächlich um ein Problem handelt, das gelöst werden muss:

  • Gelegentliche Drosselung ist normal und wird in gut optimierten DynamoDB-Anwendungen erwartet. Drosselung bedeutet einfach, dass Sie 100% dessen, was Sie bereitgestellt haben, verbrauchen. Wenn Ihre Anwendung die Drosselung ordnungsgemäß mit Wiederholungsversuchen verarbeitet und Ihre Gesamtleistung den Anforderungen entspricht, sind bei der Drosselung möglicherweise keine sofortigen Maßnahmen erforderlich.

  • Wenn die Drosselung jedoch zu einer inakzeptablen clientseitigen Latenz führt, die Benutzererfahrung beeinträchtigt oder verhindert, dass kritische Vorgänge rechtzeitig abgeschlossen werden, fahren Sie mit den unten aufgeführten Abhilfemöglichkeiten fort.

Wenn Sie Probleme mit der Drosselung beheben müssen, stellen Sie zunächst fest, ob Ihre Drosselung folgende Ursachen hat:

  • Temporäre Verkehrsspitzen: Kurzfristiger Anstieg des Datenverkehrs, der Ihre bereitgestellte Kapazität übersteigt, aber nicht dauerhaft anhält. Diese erfordern andere Strategien als kontinuierlich hoher Traffic.

  • Kontinuierlich hoher Traffic: Dauerhafte Workloads, die Ihre bereitgestellte Kapazität ständig überschreiten.

Bei Traffic-Spitzen sollten Sie die Strategien aus dem Blog-In Trafficspitzen handhaben mit Amazon DynamoDB Provisioned Capacity in Betracht ziehen. Weitere Ressourcen

Bei anhaltend hohem Traffic sollten Sie die folgenden Optionen zur Kapazitätsanpassung in Betracht ziehen:

TableReadProvisionedThroughputExceeded

Wenn das passiert

Die Leseverbrauchsrate Ihrer Anwendung übersteigt die für Ihre Tabelle konfigurierten bereitgestellten Lesekapazitätseinheiten (RCUs). Sie können die CloudWatch Messwerte überwachen, Allgemeine Diagnose und Überwachung um Ihr Drosselungsereignis zu analysieren.

Lösungsansatz

Ziehen Sie die folgenden Strategien in Betracht, um die Drosselung der Lesekapazität zu beheben:

TableWriteProvisionedThroughputExceeded

Wenn das passiert

Die Schreibverbrauchsrate Ihrer Anwendung übersteigt die für Ihre Tabelle konfigurierten bereitgestellten Schreibkapazitätseinheiten (WCUs). Sie können die CloudWatch Messwerte überwachen, Allgemeine Diagnose und Überwachung um Ihr Drosselungsereignis zu analysieren.

Lösungsansatz

Ziehen Sie die folgenden Strategien in Betracht, um die Drosselung der Schreibkapazität zu beheben:

IndexReadProvisionedThroughputExceeded

Wenn das passiert

Der Leseverbrauch auf einem Global Secondary Index (GSI) übersteigt die vom GSI bereitgestellten Lesekapazitätseinheiten (). RCUs Sie können die CloudWatch Messwerte überwachen, um Ihr Allgemeine Diagnose und Überwachung Drosselungsereignis zu analysieren.

Lösungsansatz

Ziehen Sie diese Strategien in Betracht, um die Drosselung der GSI-Lesekapazität zu beheben:

IndexWriteProvisionedThroughputExceeded

Wenn das passiert

Aktualisierungen von Elementen in der Basistabelle lösen Schreibvorgänge in eine globale Datenbank aus, die die bereitgestellte Schreibkapazität der globalen Datenbank überschreiten. Dies führt zu einer Drosselung des Gegendrucks bei Schreibvorgängen in der Basistabelle. Sie können die CloudWatch Messwerte überwachen, um Ihr Allgemeine Diagnose und Überwachung Drosselungsereignis zu analysieren.

Lösungsansatz

Ziehen Sie die folgenden Strategien in Betracht, um die Drosselung der GSI-Schreibkapazität zu beheben:

Allgemeine Diagnose und Überwachung

Bei der Behebung von Durchsatzfehlern können verschiedene CloudWatch Metriken helfen, die Ursache zu ermitteln.

Wesentliche CloudWatch Metriken

Überwachen Sie diese wichtigen Kennzahlen, um die Drosselung der bereitgestellten Kapazität zu diagnostizieren:

Lösungsverfahren

Erhöhung der Durchsatzkapazität von Tabellen

Verwenden Sie dieses Verfahren, wenn Auto Scaling nicht aktiviert ist und Sie eine sofortige Kapazitätserhöhung benötigen.

  1. Aktualisieren Sie die bereitgestellte Kapazität Ihrer Tabelle mithilfe der DynamoDB-Konsole oder des SDK AWS CLI:

    • Für Lesekapazität: Erhöhen Sie den ReadCapacityUnitsParameter, der die maximale Anzahl stark konsistenter Lesevorgänge angibt, die pro Sekunde verbraucht werden, bevor DynamoDB Anfragen drosselt.

    • Für Schreibkapazität: Erhöhen Sie den WriteCapacityUnitsParameter, der die maximale Anzahl von Schreibvorgängen angibt, die pro Sekunde verbraucht werden, bevor DynamoDB Anfragen drosselt.

  2. Stellen Sie sicher, dass Ihre neuen Kapazitätseinstellungen die Durchsatzquoten pro Tabelle nicht überschreiten und dass Ihr gesamter Kontoverbrauch unter den Durchsatzquoten pro Konto für Ihre Region bleibt. Wenn Sie sich diesen Grenzwerten nähern, sollten Sie stattdessen in den On-Demand-Kapazitätsmodus wechseln.

Konfiguration von Table Auto Scaling zur Anpassung der Lese- oder Schreibkapazität Ihrer Tabelle oder GSI

Konfigurieren Sie DynamoDB Auto Scaling so, dass die Lese- oder Schreibkapazität automatisch an die Verkehrsmuster angepasst wird. Sie können Auto Scaling unabhängig für beide Tabellen und GSIs mit separaten Steuerungen für Lese- und Schreibkapazitätseinheiten konfigurieren.

  1. Aktivieren Sie Auto Scaling für Lesekapazität, Schreibkapazität oder beides auf Ihrer Tabelle oder GSI.

  2. Legen Sie einen Zielauslastungsprozentsatz mit Spielraum für Datenverkehrsspitzen fest.

    Anmerkung

    Eine geringere Zielauslastung erhöht die Kosten und erhöht die Skalierungshäufigkeit. Ziele unter 40% können zu einer Überprovisionierung führen. Überwachen Sie Nutzungsmuster und Kosten, um ein Gleichgewicht zwischen Leistung und Effizienz zu finden.

  3. Legen Sie Kapazitätsgrenzen fest:

    • Minimum RCUs/WCUs: Sorgt für eine ausreichende Kapazität in Zeiten mit geringem Verkehrsaufkommen.

    • Maximum RCUs/WCUs: Nimmt hohe Datenverkehrsanforderungen auf und schützt vor unkontrollierten Skalierungsereignissen.

Anleitungen zur Konfiguration und Verwaltung von DynamoDB Auto Scaling finden Sie unter Automatisches Verwalten der Durchsatzkapazität mit DynamoDB Auto Scaling.

Anmerkung

Auto Scaling benötigt in der Regel mehrere Minuten, um auf Verkehrsänderungen zu reagieren. Bei plötzlichen Datenverkehrsspitzen bietet die Burst-Kapazität Ihrer Tabelle sofortigen Schutz, während sich Auto Scaling anpasst. Konfigurieren Sie die Zielauslastung mit ausreichend Spielraum, um Zeit für Skalierungsvorgänge zu haben und die Burst-Kapazität für unerwarteten Bedarf zu sichern.

Optimieren der Auto Scaling Scaling-Lese- oder Schreibeinstellungen Ihrer Tabelle oder Ihres Indexes

Verwenden Sie dieses Verfahren, wenn Auto Scaling aktiviert ist, die Drosselung jedoch weiterhin erfolgt. Sie können Auto Scaling unabhängig sowohl für Tabellen als auch für globale Sekundärindizes (GSIs) mit separaten Steuerungen für Lese- und Schreibkapazitätseinheiten optimieren.

  • Passen Sie die Zielauslastung an: Erwägen Sie, die Zielauslastung für Ihre Tabelle GSIs zu verringern oder die Skalierung früher auszulösen, bevor eine Drosselung erfolgt. Stellen Sie sicher, dass Sie Ihren Datenverkehr überwachen, nachdem Sie diese Anpassungen vorgenommen haben. Weitere Informationen Konfiguration von Table Auto Scaling zur Anpassung der Lese- oder Schreibkapazität Ihrer Tabelle oder GSI zum Kapazitätsverbrauch und zu den Auswirkungen auf die Kosten finden Sie unter.

  • Überprüfen Sie die Kapazitätsgrenzen: Stellen Sie sicher, dass Ihre Mindest- und Höchstkapazitätseinstellungen Ihren tatsächlichen Workload-Mustern entsprechen.

Umstellung auf den On-Demand-Kapazitäts

Allgemeine Informationen zum Umschalten von Kapazitätsmodi finden Sie unterÜberlegungen beim Wechseln der Kapazitätsmodi in DynamoDB. Informationen zu spezifischen Einschränkungen beim Moduswechsel finden Sie in den Service Quotas.

Erhöhung der GSI-Durchsatzkapazität

Verwenden Sie dieses Verfahren, wenn Auto Scaling auf Ihrer GSI nicht aktiviert ist oder Sie eine sofortige Kapazitätserhöhung benötigen.

  1. Aktualisieren Sie die bereitgestellte Kapazität der GSI mithilfe der DynamoDB-Konsole oder des SDK: AWS CLI

    • Für Lesekapazität: Erhöhen Sie den ReadCapacityUnitsParameter für die spezifische GSI, der die maximale Anzahl von Lesevorgängen angibt, die die GSI pro Sekunde verarbeiten kann, bevor DynamoDB Anfragen drosselt. Beachten Sie, dass nur eventuell konsistente Lesevorgänge unterstützt GSIs werden.

    • Für Schreibkapazität: Erhöhen Sie den WriteCapacityUnitsParameter für die spezifische GSI, der die maximale Anzahl von Schreibvorgängen angibt, die die GSI pro Sekunde verarbeiten kann, bevor DynamoDB Anfragen drosselt.

  2. Stellen Sie sicher, dass die von der GSI bereitgestellte Durchsatzkapazität innerhalb der Durchsatzquoten pro Konto und pro Tabelle bleibt.

Weitere Ressourcen