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
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, 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: Kurzfristiger Anstieg des Datenverkehrs, der die bereitgestellte Kapazität übersteigt, aber nicht dauerhaft anhält. 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 bereitgestellten Lesekapazitätseinheiten (RCUs), die für Ihre Tabelle konfiguriert sind. 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:
-
In den On-Demand-Kapazitätsmodus wechseln: Falls häufig Drosselungen aufgrund von Datenverkehrsspitzen auftreten, können Sie Ihre Tabelle auf den On-Demand-Modus umstellen. Der On-Demand-Modus beseitigt Probleme bei der Bereitstellung und passt sich automatisch Ihrer Workload an.
-
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 bereitgestellten Schreibkapazitätseinheiten (WCUs), die für Ihre Tabelle konfiguriert sind. 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:
-
In den On-Demand-Kapazitätsmodus wechseln: Falls häufig Drosselungen aufgrund von Datenverkehrsspitzen auftreten, können Sie Ihre Tabelle auf den On-Demand-Modus umstellen. Der On-Demand-Modus beseitigt Probleme bei der Bereitstellung und passt sich automatisch Ihrer Workload an.
-
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 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:
-
In den On-Demand-Kapazitätsmodus wechseln: Falls häufig Drosselungen aufgrund von Datenverkehrsspitzen auftreten, können Sie die Basistabelle auf den On-Demand-Modus umstellen. Der On-Demand-Modus beseitigt Probleme bei der Bereitstellung und passt sich automatisch Ihrer Workload an.
-
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 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:
-
In den On-Demand-Kapazitätsmodus wechseln: Falls häufig Drosselungen aufgrund von Datenverkehrsspitzen auftreten, können Sie die Basistabelle auf den On-Demand-Modus umstellen. Der On-Demand-Modus beseitigt Probleme bei der Bereitstellung und passt sich automatisch Ihrer Workload an.
-
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 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 unabhängig für beide Tabellen und GSIs mit separaten Steuerungen für Lese- und Schreibkapazitätseinheiten konfigurieren.
-
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 eine ausreichende Kapazität in Zeiten mit geringem Datenaufkommen.
-
Maximum RCUs/WCUs: Nimmt hohe Datenverkehrsanforderungen auf und schützt vor unkontrollierten 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 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. 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 bereitgestellte Kapazität der GSI 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. Beachten Sie, dass GSIs nur eventuell konsistente Lesevorgänge unterstützt werden. -
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
.