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. Überschreitung des bereitgestellten Durchsatzes
Eine 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, um gelegentliche Datenverkehrsspitzen zu bewältigen, aber anhaltende Anfragen, die Ihre bereitgestellten Limits überschreiten, führen zu einer Drosselung. In diesem Fall gibt DynamoDB in der Drosselungsausnahme einen Drosselungsgrund vom Typ ProvisionedThroughputExceeded zurück. Dieser zeigt an, ob das Problem bei Lese- oder Schreibvorgängen liegt und ob es die Basistabelle oder einen globalen sekundären Index betrifft.
Die Drosselung kann unabhängig davon erfolgen, ob Auto Scaling aktiviert ist. Auto Scaling passt sich zwar dem steigenden Verbrauch an, reagiert aber nicht sofort. Zudem ist es durch die von Ihnen konfigurierten maximalen Kapazitätslimits eingeschränkt. Daher kann es immer noch zu Drosselungen kommen, wenn plötzliche Verkehrsspitzen auftreten oder der Verbrauch Ihre maximalen Auto-Scaling-Limits überschreitet.
Bereitgestellter Durchsatz übersteigt Abhilfemaßnahmen
Dieser Abschnitt bietet Anleitungen zur Lösung von Drosselungsszenarien bei bereitgestellten Kapazitäten. Bevor Sie diese Anleitung verwenden, sollten Sie den spezifischen Drosselungsgrund anhand der Ausnahmebehandlung Ihrer Anwendung identifizieren und den Amazon-Ressourcennamen (ARN) der betroffenen Ressource ermitteln. Informationen dazu, wie Sie die Gründe für die Drosselung abrufen und gedrosselte Ressourcen identifizieren, finden Sie unter Diagnose-Framework für DynamoDB-Drosselungen.
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 ausgeräumt werden muss:
-
Eine 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 ordnungsgemäß mit Wiederholungsversuchen auf die Drosselung reagiert und die Gesamtleistung den Anforderungen entspricht, sind möglicherweise keine sofortigen Gegenmaßnahmen erforderlich.
-
Wenn die Drosselung jedoch zu einer inakzeptablen clientseitigen Latenz führt, die Nutzererfahrung beeinträchtigt oder verhindert, dass kritische Vorgänge rechtzeitig abgeschlossen werden, fahren Sie mit den unten aufgeführten Abhilfemöglichkeiten fort.
Wenn Sie Drosselungsprobleme beheben müssen, stellen Sie zunächst fest, ob folgende Ursachen vorliegen:
-
Temporäre Datenverkehrsspitzen: Short-duration Zunahmen des Datenverkehrs, die Ihre bereitgestellte Kapazität überschreiten, aber nicht anhalten. Hierbei sind andere Strategien erforderlich als bei kontinuierlich hohem Datenverkehr.
-
Kontinuierlich hoher Datenverkehr: Dauerhafte Workloads, die die bereitgestellte Kapazität ständig überschreiten.
Bei Datenverkehrsspitzen sollten Sie die Strategien aus dem Blog Handle traffic spikes with Amazon DynamoDB provisioned capacity unter Weitere Ressourcen in Betracht ziehen.
Bei anhaltend hohem Datenverkehr haben Sie folgende Möglichkeiten zur Kapazitätsanpassung:
TableReadProvisionedThroughputExceeded
Wenn dies auftritt
Die Leseverbrauchsrate Ihrer Anwendung übersteigt die für Ihre Tabelle konfigurierten bereitgestellten Lesekapazitätseinheiten (RCUs). Sie können die CloudWatch Metriken überwachen, um Ihr Allgemeine Diagnose und Überwachung Drosselungsereignis zu analysieren.
Lösungsansatz
Ziehen Sie die folgenden Strategien in Betracht, um die Drosselung der Lesekapazität zu beheben:
-
Wechseln Sie in den On-Demand-Kapazitätsmodus: Erwägen Sie, Ihren Tisch auf Abruf umzustellen, wenn Sie aufgrund von Verkehrsspitzen häufig gedrosselt werden. On-demand beseitigt Probleme bei der Bereitstellung und skaliert automatisch mit Ihrer Arbeitslast.
-
Wenn der bereitgestellte Modus beibehalten wird und Auto Scaling nicht aktiviert ist:
-
Erwägen Sie, die Lesekapazität für die Tabelle zu erhöhen.
-
Aktivieren Sie Auto Scaling für die Lesekapazität bei der Tabelle.
-
-
Wenn Auto Scaling aktiviert ist (Standard für Tabellen, die in der Konsole erstellt wurden):
TableWriteProvisionedThroughputExceeded
Wenn dies auftritt
Die Schreibverbrauchsrate Ihrer Anwendung übersteigt die für Ihre Tabelle konfigurierten bereitgestellten Schreibkapazitätseinheiten (WCUs). Sie können die CloudWatch Metriken überwachenAllgemeine 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:
-
Wechseln Sie in den On-Demand-Kapazitätsmodus: Erwägen Sie, Ihre Tabelle auf Abruf umzustellen, wenn Sie aufgrund von Verkehrsspitzen häufig gedrosselt werden. On-demand beseitigt Probleme bei der Bereitstellung und skaliert automatisch mit Ihrer Arbeitslast.
-
Wenn der bereitgestellte Modus beibehalten wird und Auto Scaling nicht aktiviert ist:
-
Erwägen Sie, die Schreibkapazität für die Tabelle zu erhöhen.
-
Aktivieren Sie Auto Scaling für die Schreibkapazität bei der Tabelle.
-
-
Wenn Auto Scaling aktiviert ist (Standard für Tabellen, die in der Konsole erstellt wurden):
IndexReadProvisionedThroughputExceeded
Wenn dies auftritt
Der Leseverbrauch bei einem globalen sekundären Index (GSI) übersteigt die dafür bereitgestellten Lesekapazitätseinheiten (RCUs). Sie können die CloudWatch Metriken überwachenAllgemeine Diagnose und Überwachung, um Ihr Drosselungsereignis zu analysieren.
Lösungsansatz
Ziehen Sie diese Strategien in Betracht, um die Drosselung der GSI-Lesekapazität zu beheben:
-
Wechseln Sie in den On-Demand-Kapazitätsmodus: Erwägen Sie, die Basistabelle auf On-Demand umzustellen, wenn Sie aufgrund von Verkehrsspitzen häufig Drosselungen feststellen. On-demand beseitigt Probleme bei der Bereitstellung und skaliert automatisch mit Ihrer Arbeitslast.
-
Wenn der bereitgestellte Modus beibehalten wird und Auto Scaling nicht aktiviert ist:
-
Erwägen Sie, die GSI-Lesekapazität zu erhöhen.
-
Aktivieren Sie Auto Scaling für die Lesekapazität bei dem GSI.
-
-
Wenn Auto Scaling aktiviert ist (Standard für Tabellen, die in der Konsole erstellt wurden):
IndexWriteProvisionedThroughputExceeded
Wenn dies auftritt
Aktualisierungen von Elementen in der Basistabelle lösen Schreibvorgänge in einen GSI aus, die die bereitgestellte Schreibkapazität des GSI überschreiten. Dies führt zu einer Gegendruckdrosselung bei Schreibvorgängen in der Basistabelle. Sie können die CloudWatch Metriken überwachenAllgemeine Diagnose und Überwachung, um Ihr Drosselungsereignis zu analysieren.
Lösungsansatz
Ziehen Sie die folgenden Strategien in Betracht, um die Drosselung der GSI-Schreibkapazität zu beheben:
-
Wechseln Sie in den On-Demand-Kapazitätsmodus: Erwägen Sie, die Basistabelle auf On-Demand umzustellen, wenn Sie aufgrund von Verkehrsspitzen häufig Drosselungen feststellen. On-demand beseitigt Probleme bei der Bereitstellung und skaliert automatisch mit Ihrer Arbeitslast.
-
Wenn der bereitgestellte Modus beibehalten wird und Auto Scaling nicht aktiviert ist:
-
Erwägen Sie, die Schreibkapazität für den GSI zu erhöhen.
-
Aktivieren Sie Auto Scaling für die Schreibkapazität bei dem GSI.
-
-
Wenn Auto Scaling aktiviert ist (Standard für Tabellen, die in der Konsole erstellt wurden):
Allgemeine Diagnose und Überwachung
Bei der Behebung von Durchsatzfehlern können verschiedene CloudWatch Metriken dabei helfen, die Ursache zu ermitteln.
Wesentliche CloudWatch Metriken
Überwachen Sie diese wichtigen Kennzahlen, um die Drosselung der bereitgestellten Kapazität zu diagnostizieren:
-
Drosselungsereignisse:
ReadProvisionedThroughputThrottleEventsundWriteProvisionedThroughputThrottleEventsverfolgen, wann Anfragen aus diesem Grund gedrosselt werden.ReadThrottleEventsundWriteThrottleEventsverfolgen, wann Lese- oder Schreibanfragen die bereitgestellte Kapazität überschreiten. -
Kapazitätsverbrauch:
ConsumedReadCapacityUnitsundConsumedWriteCapacityUnitszeigen die tatsächliche Nutzung an. -
Bereitgestellte Kapazität:
ProvisionedReadCapacityUnitsundProvisionedWriteCapacityUnitszeigen die konfigurierten Limits an.
Fehlerbehebung
Erhöhen der Durchsatzkapazität einer Tabelle
Verwenden Sie dieses Verfahren, wenn Auto Scaling nicht aktiviert ist und Sie eine sofortige Kapazitätserhöhung benötigen.
-
Aktualisieren Sie die bereitgestellte Kapazität Ihrer Tabelle mithilfe der DynamoDB-Konsole oder des SDK: AWS CLI
-
Für die Lesekapazität: Erhöhen Sie den Parameter
ReadCapacityUnits, der die maximale Anzahl strikt konsistenter Lesevorgänge angibt, die pro Sekunde verbraucht werden, bevor DynamoDB Anfragen drosselt. -
Für die Schreibkapazität: Erhöhen Sie den Parameter
WriteCapacityUnits, der die maximale Anzahl der Schreibvorgänge angibt, die pro Sekunde verbraucht werden, bevor DynamoDB Anfragen drosselt.
-
-
Achten Sie darauf, dass die neuen Kapazitätseinstellungen die Durchsatzkontingente pro Tabelle nicht überschreiten und dass Ihr gesamter Kontoverbrauch unter den Durchsatzkontingenten pro Konto für Ihre Region bleibt. Wenn Sie an diese Limits herankommen, sollten Sie stattdessen in den On-Demand-Kapazitätsmodus wechseln.
Konfigurieren von Auto Scaling zum Anpassen der Lese- oder Schreibkapazität einer Tabelle oder eines GSI
Konfigurieren Sie DynamoDB Auto Scaling so, dass die Lese- oder Schreibkapazität automatisch an die Datenverkehrsmuster angepasst wird. Sie können Auto Scaling jeweils unabhängig für Tabellen und GSIs konfigurieren und separate Einstellungen für Lese- und Schreibkapazitätseinheiten festlegen.
-
Aktivieren Sie Auto Scaling für die Lese- oder die Schreibkapazität oder für beides bei der Tabelle oder dem GSI.
-
Legen Sie einen Zielauslastungsprozentsatz mit Spielraum für Datenverkehrsspitzen fest.
Anmerkung
Eine geringere Zielauslastung erhöht die Kosten und die Skalierungshäufigkeit. Ziele unter 40 % können zu einer übermäßigen Bereitstellung führen. Überwachen Sie Nutzungsmuster und Kosten, um ein ausgewogenes Verhältnis zwischen Leistung und Effizienz zu finden.
-
Legen Sie Kapazitätsgrenzen fest:
-
Minimum RCUs/WCUs: Sorgt für ausreichende Kapazität in Zeiten mit geringem Datenverkehr.
-
Maximum RCUs/WCUs: Erfüllt die Anforderungen in Spitzenverkehrszeiten und schützt vor unkontrollierbaren Skalierungsereignissen.
-
Anleitungen zum Konfigurieren und Verwalten von DynamoDB Auto Scaling finden Sie unter Managing throughput capacity automatically with DynamoDB Auto Scaling.
Anmerkung
Auto Scaling benötigt in der Regel mehrere Minuten, um auf Datenverkehrsänderungen zu reagieren. Bei plötzlichen Datenverkehrsspitzen bietet die Burst-Kapazität der Tabelle sofortigen Schutz, während Auto Scaling die nötigen Anpassungen vornimmt. Konfigurieren Sie die Zielauslastung mit ausreichend Spielraum, um Zeit für solche Skalierungsvorgänge zu lassen und die Burst-Kapazität für unerwarteten Bedarf aufzusparen.
Optimieren der Auto-Scaling-Einstellungen für Lese- oder Schreibvorgänge bei einer Tabelle oder einem Index
Verwenden Sie dieses Verfahren, wenn Auto Scaling aktiviert ist, aber weiterhin eine Drosselung erfolgt. Sie können Auto Scaling jeweils unabhängig für Tabellen und globale sekundäre Indizes (GSIs) abstimmen und separate Einstellungen für Lese- und Schreibkapazitätseinheiten festlegen.
-
Zielauslastung anpassen: Sie können die Zielauslastung für Tabellen oder GSIs verringern, um die Skalierung früher auszulösen, bevor es zu einer Drosselung kommt. Nachdem Sie diese Anpassungen vorgenommen haben, sollten Sie den Datenverkehr überwachen. Weitere Informationen zum Kapazitätsverbrauch und den Auswirkungen auf die Kosten finden Sie unter Konfigurieren von Auto Scaling zum Anpassen der Lese- oder Schreibkapazität einer Tabelle oder eines GSI.
-
Kapazitätsgrenzen überprüfen: Stellen Sie sicher, dass die Einstellungen für minimale und maximale Kapazität den tatsächlichen Workload-Mustern entsprechen.
Wechseln in den On-Demand-Kapazitätsmodus
Allgemeine Informationen zum Wechseln der Kapazitätsmodi finden Sie unter Überlegungen beim Umstellen der Kapazitätsmodi in DynamoDB. Informationen zu spezifischen Einschränkungen beim Moduswechsel finden Sie in den Service Quotas.
Erhöhen der GSI-Durchsatzkapazität
Verwenden Sie dieses Verfahren, wenn Auto Scaling bei Ihrem GSI nicht aktiviert ist oder Sie eine sofortige Kapazitätserhöhung benötigen.
-
Aktualisieren Sie die vom GSI bereitgestellte Kapazität mithilfe der DynamoDB-Konsole oder des SDK: AWS CLI
-
Für die Lesekapazität: Erhöhen Sie den Parameter
ReadCapacityUnits, der die maximale Anzahl an Lesevorgängen angibt, die der GSI pro Sekunde verbrauchen kann, bevor DynamoDB Anfragen drosselt. Hinweis: GSIs unterstützen nur letztendlich konsistente Lesevorgänge. -
Für die Schreibkapazität: Erhöhen Sie den Parameter
WriteCapacityUnits, der die maximale Anzahl an Schreibvorgängen angibt, die der GSI pro Sekunde verbrauchen kann, bevor DynamoDB Anfragen drosselt.
-
-
Achten Sie darauf, dass die für den GSI bereitgestellte Durchsatzkapazität innerhalb der Durchsatzkontingente pro Konto und Tabelle bleibt.
Weitere Ressourcen
-
Ausführliche Informationen zum Umgang mit Datenverkehrsspitzen in DynamoDB-Tabellen mit bereitgestellter Kapazität, einschließlich Strategien von Auto Scaling und Burst-Kapazität bis zu strategischem Drosselungsmanagement, finden Sie unter Handle traffic spikes with Amazon DynamoDB provisioned capacity
. -
Informationen zur Verwendung eines Cron-Ausdrucks zum Planen einer Skalierungsrichtlinie finden Sie unter Optimize costs by scheduling provisioned capacity for DynamoDB
. -
Praktische Informationen zum Überwachen und Analysieren von Durchsatznutzungsmustern für DynamoDB-Tabellen im bereitgestellten Kapazitätsmodus finden Sie unter How to evaluate throughput utilization for Amazon DynamoDB tables in provisioned mode
.