View a markdown version of this page

Serverlose Skalierungskonfiguration von Amazon DocumentDB - Amazon DocumentDB

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.

Serverlose Skalierungskonfiguration von Amazon DocumentDB

Auswahl des Skalierungskapazitätsbereichs für einen serverlosen DocumentDB-Cluster

Bevor serverlose DocumentDB-Instances zu einem Amazon DocumentDB-Cluster hinzugefügt werden, muss der Parameter auch für den Cluster festgelegt sein. ServerlessV2ScalingConfiguration

Der ServerlessV2ScalingConfiguration Parameter besteht aus zwei Werten, die den Kapazitätsbereich für die serverlose Skalierung jeder serverlosen Instance im Cluster definieren:

  • MinCapacity— Die minimale Skalierungskapazität aller serverlosen DocumentDB-Instanzen im Cluster.

  • MaxCapacity— Die maximale Skalierungskapazität aller serverlosen DocumentDB-Instances im Cluster.

Auswahl der MinCapacity Einstellung für einen serverlosen DocumentDB-Cluster

Es ist verlockend, immer 0,5 für zu wählen. MinCapacity Mit diesem Wert kann die Instance auf die kleinste Kapazität herunterskaliert werden, wenn sie vollständig inaktiv ist, während sie aktiv bleibt. Je nachdem, wie Sie diesen Cluster verwenden und wie die anderen Einstellungen konfiguriert sind, ist jedoch eine andere Mindestkapazität ggf. am effektivsten. Berücksichtigen Sie bei der Auswahl der Mindestkapazitätseinstellung die folgenden Faktoren:

  • Die Skalierungsrate für eine serverlose DocumentDB-Instance hängt von ihrer aktuellen Kapazität ab. Je höher die aktuelle Kapazität, desto schneller kann sie hochskalieren. Wenn die Instance schnell auf eine sehr hohe Kapazität hochskaliert werden muss, sollten Sie erwägen, die Mindestkapazität auf einen Wert festzulegen, bei dem die Skalierungsrate Ihren Anforderungen entspricht.

  • Wenn Sie in der Regel die Instance-Klasse Ihrer Instances in Erwartung einer besonders hohen oder niedrigen Arbeitslast ändern, können Sie diese Erfahrung nutzen, um eine grobe Schätzung des äquivalenten serverlosen Kapazitätsbereichs von DocumentDB vorzunehmen. Informationen zur Bestimmung der Speichergröße eines bereitgestellten Amazon DocumentDB-Instance-Typs finden Sie unter. Kontingente für Instanzen

    Nehmen wir beispielsweise an, Sie verwenden die db.r6g.xlarge Instance-Klasse, wenn Ihr Cluster eine geringe Arbeitslast hat. Diese Instanzklasse hat 32 GiB Speicher. Sie können also einen Wert MinCapacity von 16 angeben, um eine serverlose Instanz einzurichten, die auf ungefähr dieselbe Kapazität herunterskaliert werden kann. Das liegt daran, dass jede DCU ungefähr 2 GiB Arbeitsspeicher entspricht. Sie könnten einen etwas niedrigeren Wert angeben, um die Instance weiter herunterskalieren zu lassen, falls Ihre db.r6g.xlarge Instance manchmal nicht ausgelastet war.

  • Wenn Ihre Anwendung am effizientesten arbeitet, wenn die Instances eine bestimmte Datenmenge im Puffer-Cache haben, sollten Sie erwägen, eine DCU-Mindesteinstellung anzugeben, bei der der Speicher groß genug ist, um die häufig aufgerufenen Daten aufzunehmen. Andernfalls werden einige Daten aus dem Puffer-Cache entfernt, wenn die serverlosen Instances auf eine niedrigere Speichergröße herunterskaliert werden. Wenn die Instanzen dann wieder hochskaliert werden, werden die Informationen im Laufe der Zeit wieder in den Puffer-Cache eingelesen. Wenn die Menge I/O , die zurück in den Puffercache gebracht werden muss, erheblich ist, könnte es effektiver sein, einen höheren DCU-Mindestwert zu wählen. Weitere Informationen finden Sie unter Dimensionierung der Instanz.

  • Wenn Ihre serverlosen DocumentDB-Instances die meiste Zeit mit einer bestimmten Kapazität ausgeführt werden, sollten Sie erwägen, eine Mindestkapazitätseinstellung anzugeben, die unter dem Basiswert liegt, aber nicht zu viel niedriger ist. Serverlose Instances können am effektivsten abschätzen, um wie viel und wie schnell eine Skalierung erfolgen muss, wenn die aktuelle Kapazität nicht drastisch unter der erforderlichen Kapazität liegt.

  • Wenn Ihr bereitgestellter Workload Speicheranforderungen hat, die für kleine Instance-Klassen wie T3 oder T4g zu hoch sind, wählen Sie eine DCU-Mindesteinstellung, die Arbeitsspeicher bereitstellt, der mit einer R5- oder R6g-Instance vergleichbar ist.

  • Verwenden Sie MinCapacity für die angegebenen Funktionen mindestens das folgende Minimum (Änderungen vorbehalten):

    • Einblicke in die Leistung — 2 DCUs

    • Globale Cluster — 8 DCUs (gilt nur für den primären) AWS-Region

  • In Amazon DocumentDB erfolgt die Replikation auf der Speicherebene, sodass sich die Lesekapazität nicht direkt auf die Replikation auswirkt. Stellen Sie jedoch bei serverlosen DocumentDB-Leser-Instances, die unabhängig skaliert werden, sicher, dass die Mindestkapazität ausreicht, um Arbeitslasten in schreibintensiven Zeiten zu bewältigen, um Abfragelatenzen zu vermeiden. Wenn bei Reader-Instances der Stufen 2—15 Leistungsprobleme auftreten, sollten Sie erwägen, die Mindestkapazität des Clusters zu erhöhen. Einzelheiten dazu, wie Sie ändern können, ob Reader-Instances zusammen mit dem Writer oder unabhängig skalieren, finden Sie unterDie Angebotsstufe für serverlose Lesegeräte anzeigen und ändern.

    Wenn Sie einen Cluster mit serverlosen DocumentDB-Leser-Instanzen haben, skalieren die Reader nicht zusammen mit der Writer-Instanz, wenn die Aufstiegsstufe der Leser nicht 0 oder 1 ist. In diesem Fall kann das Festlegen einer geringen Mindestkapazität zu einer übermäßigen Replikationsverzögerung führen. Das liegt daran, dass die Reader möglicherweise nicht genug Kapazität haben, um Änderungen vom Writer zu übernehmen, wenn die Datenbank ausgelastet ist. Stellen Sie die Mindestkapazität auf einen Wert ein, der einer mit der Writer-Instanz vergleichbaren Menge an Arbeitsspeicher und CPU entspricht.

  • Die Zeit, die eine serverlose DocumentDB-Instance benötigt, um von ihrer Mindestkapazität auf ihre maximale Kapazität zu skalieren, hängt von der Differenz zwischen ihren minimalen und maximalen DCU-Werten ab. Wenn die aktuelle Kapazität der Instanz groß ist, skaliert DocumentDB Serverless in größeren Schritten nach oben, als wenn die Instance mit einer geringen Kapazität gestartet wird. Wenn Sie also eine relativ große maximale Kapazität angeben und die Instance die meiste Zeit in der Nähe dieser Kapazität verbringt, sollten Sie erwägen, die Mindest-DCU-Einstellung zu erhöhen. Auf diese Weise kann eine Instance im Leerlauf schneller wieder auf die maximale Kapazität hochskaliert werden.

  • Bestimmte Instance-Limits werden von der aktuellen Kapazität der serverlosen Instance bestimmt, z. B. Verbindungslimit, Cursorlimit und Limit für offene Transaktionen. Wenn die aktuelle Kapazität der Instance gering ist, sind auch die Limits entsprechend gering. Wenn diese Grenzwerte ein Problem darstellen, wenn Ihre serverlose Instance auf ihren MinCapacity Wert herunterskaliert wird, sollten Sie eine Erhöhung MinCapacity auf einen höheren Wert in Betracht ziehen. Weitere Informationen finden Sie unter Grenzwerte für serverlose Amazon DocumentDB-Instances.

  • Darüber hinaus sind bestimmte Instance-Limits auf einen niedrigeren Maximalwert begrenzt, wenn der auf weniger als oder gleich 1,0 DCUs festgelegt MinCapacity ist, wie z. B. das Limit für aktive Verbindungen, das Cursorlimit und das Limit für offene Transaktionen. Wenn diese Obergrenzen für Ihre Arbeitslast nicht ausreichen, verwenden Sie einen MinCapacity Wert von mindestens 1,5 DCUs. Weitere Informationen finden Sie unter Grenzwerte für serverlose Amazon DocumentDB-Instances.

Anweisungen zum Ändern der Skalierungskonfiguration eines Clusters finden Sie unter. Verwaltung von Amazon DocumentDB serverlos

Auswahl der MaxCapacity Einstellung für einen serverlosen DocumentDB-Cluster

Es ist verlockend, immer einen hohen Wert für die maximale serverlose DocumentDB-Kapazitätseinstellung zu wählen. Eine große maximale Kapazität ermöglicht es der Instance, am stärksten zu skalieren, wenn sie eine intensive Arbeitslast ausführt. Mit einem niedrigen Wert entfällt die Möglichkeit unerwarteter Gebühren. Je nachdem, wie Sie diesen Cluster verwenden und die anderen Einstellungen konfigurieren, kann der effektivste Wert höher oder niedriger sein, als Sie ursprünglich dachten. Berücksichtigen Sie bei der Auswahl der maximalen Kapazitätseinstellung die folgenden Faktoren:

  • Die maximale Kapazität muss mindestens so hoch sein wie die Mindestkapazität. Sie können die minimale und maximale Kapazität auf den gleichen Wert festlegen. In diesem Fall skaliert sich die Kapazität jedoch niemals hoch oder herunter. Daher ist die Verwendung identischer Werte für die minimale und maximale Kapazität außerhalb von Testsituationen nicht geeignet.

  • Die maximale Kapazität muss mindestens 1,0 DCUs und höchstens 256 DCUs betragen.

  • Überwachen Sie die Skalierung und den Ressourcenverbrauch Ihrer serverlosen Instances. Wenn Ihre serverlose Instance häufig bis zur maximalen Kapazität skaliert wird und dabei an Ressourcenbeschränkungen stößt (z. B. wenn die DCUUtilization Metrik bei 100,0 liegt), wählen Sie einen höheren Wert. MaxCapacity Weitere Informationen finden Sie unter Überwachung von Amazon DocumentDB (serverlos).

  • Wenn Sie in der Regel die Instance-Klasse Ihrer bereitgestellten Instances in Erwartung einer besonders hohen oder niedrigen Arbeitslast ändern, können Sie diese Erfahrung nutzen, um den entsprechenden serverlosen Kapazitätsbereich von DocumentDB abzuschätzen. Informationen zur Bestimmung der Speichergröße der bereitgestellten Amazon DocumentDB-Instances finden Sie unter. Kontingente für Instanzen

    Nehmen wir beispielsweise an, Sie verwenden die db.r6g.4xlarge Instance-Klasse, wenn Ihr Cluster eine hohe Arbeitslast hat. Diese Instanzklasse hat 128 GiB Speicher. Daher können Sie eine maximale DCU-Einstellung von 64 angeben, um eine serverlose Instanz einzurichten, die auf ungefähr dieselbe Kapazität skaliert werden kann. Das liegt daran, dass jede DCU ungefähr 2 GiB Arbeitsspeicher entspricht. Sie können einen etwas höheren Wert angeben, damit die Instance weiter skaliert werden kann, falls Ihre db.r6g.4xlarge Instance manchmal nicht über genügend Kapazität verfügt, um die Arbeitslast effektiv zu bewältigen.

  • Wenn Sie eine Budgetobergrenze für Ihre Datenbanknutzung haben, wählen Sie einen Wert, der innerhalb dieser Obergrenze bleibt, auch wenn alle Ihre serverlosen Instances ständig mit maximaler Kapazität laufen. Denken Sie daran, dass, wenn Sie n serverlose Instances in Ihrem Cluster haben, die theoretische maximale serverlose Kapazität, die der Cluster jederzeit verbrauchen kann, das N-fache der maximalen DCU-Einstellung für den Cluster beträgt. (Der tatsächlich verbrauchte Betrag ist möglicherweise geringer, wenn beispielsweise einige Reader unabhängig vom Writer skalieren.)

  • Wenn Sie serverlose Reader-Instances verwenden, um einen Teil der schreibgeschützten Arbeitslast von der Writer-Instance auszulagern, können Sie möglicherweise eine niedrigere Einstellung für die maximale Kapazität wählen. Sie tun dies, um zu berücksichtigen, dass nicht jede Reader-Instanz so hoch skaliert werden muss, als ob der Cluster nur eine einzige Instanz enthält.

  • Angenommen, Sie möchten sich vor übermäßiger Auslastung aufgrund falsch konfigurierter Datenbankparameter oder ineffizienter Abfragen in Ihrer Anwendung schützen. In diesem Fall können Sie eine versehentliche Überbeanspruchung vermeiden, indem Sie eine maximale Kapazitätseinstellung wählen, die niedriger ist als die absolut höchste, die Sie festlegen können.

  • Wenn Spitzen aufgrund realer Benutzeraktivitäten zwar selten sind, aber dennoch auftreten, können Sie diese Situationen bei der Auswahl der maximalen Kapazitätseinstellung berücksichtigen. Wenn die Priorität darin besteht, dass die Anwendung weiterhin mit voller Leistung und Skalierbarkeit ausgeführt wird, können Sie eine maximale Kapazitätseinstellung angeben, die höher ist, als Sie bei normaler Auslastung beobachten. Wenn es akzeptabel ist, dass die Anwendung bei sehr extremen Aktivitätsspitzen mit reduziertem Durchsatz ausgeführt wird, können Sie eine etwas niedrigere maximale Kapazitätseinstellung wählen. Stellen Sie sicher, dass Sie eine Einstellung auswählen, die immer noch über genügend Speicher- und CPU-Ressourcen verfügt, damit die Anwendung weiterhin ausgeführt wird.

  • Wenn Sie Einstellungen in Ihrem Cluster aktivieren, die den Speicherverbrauch für jede Instance erhöhen, berücksichtigen Sie diesen Speicher, wenn Sie den maximalen DCU-Wert festlegen. Zu diesen Einstellungen gehören die Einstellungen für Performance Insights und globale Cluster. Stellen Sie sicher, dass der maximale DCU-Wert es den serverlosen Instances ermöglicht, ausreichend zu skalieren, um die Arbeitslast zu bewältigen, wenn diese Funktionen verwendet werden. Informationen zur Behebung von Problemen, die durch die Kombination aus einer niedrigen maximalen DCU-Einstellung und Amazon DocumentDB-Funktionen verursacht werden, die einen Speicheraufwand verursachen, finden Sie unter Vermeiden von Fehlern aufgrund von zu wenig Speicher (unten).

  • Verwenden Sie MaxCapacity für die angegebenen Funktionen mindestens das folgende Minimum (Änderungen vorbehalten):

    • Serverlose Instanzerstellung auf einem Cluster mit einem großen Datenvolumen — 2 DCUs (dazu gehört auch die serverlose Instanzerstellung im Rahmen einer Cluster-Wiederherstellung.)

  • Bestimmte Instance-Limits werden von der aktuellen Kapazität der Instance bestimmt, z. B. Verbindungslimit, Cursorlimit und Limit für offene Transaktionen. Achten Sie bei der Auswahl des MaxCapacity Werts für Ihre Arbeitslast darauf, diese Instance-Limits zu berücksichtigen, um zu vermeiden, dass Sie durch eines dieser Limits zu Engpässen geraten. Weitere Informationen finden Sie unter Grenzwerte für serverlose Amazon DocumentDB-Instances.

Anweisungen zum Ändern der Skalierungskonfiguration eines Clusters finden Sie unter. Verwaltung von Amazon DocumentDB serverlos

Vermeiden von Fehlern aufgrund von zu wenig Speicher

Wenn eine Ihrer serverlosen DocumentDB-Instances ständig die Grenze ihrer maximalen Kapazität erreicht, weist Amazon DocumentDB auf diesen Zustand hin, indem es der Instance den Status „Incompatible-parameters“ zuweist. Während die Instance den Status „Incompatible-Parameters“ hat, sind einige Operationen blockiert. Beispielsweise können Sie die Engine-Version nicht aktualisieren. Weitere Informationen zum Status einer Amazon DocumentDB-Instance finden Sie unter. Überwachung des Status einer Amazon DocumentDB-Instance

In der Regel geht Ihre Instance in diesen Status über, wenn sie aufgrund von Fehlern aufgrund von Speichermangel häufig neu gestartet wird. Amazon DocumentDB zeichnet ein Ereignis auf, wenn diese Art von Neustart stattfindet. Informationen zum Anzeigen von Ressourcenereignissen finden Sie unterAmazon DocumentDB DocumentDB-Ereignisse anzeigen. Ein ungewöhnlich hoher Speicherverbrauch kann aufgrund des Overheads beim Aktivieren von Einstellungen wie Performance Insights auftreten. Dies kann auch auf eine hohe Arbeitslast Ihrer Instance oder auf die Verwaltung der Metadaten zurückzuführen sein, die mit einer großen Anzahl von Schemaobjekten verknüpft sind.

Wenn der Speicherdruck geringer wird, sodass die Instance ihre maximale Kapazität nicht sehr oft erreicht, ändert Amazon DocumentDB den Instance-Status automatisch wieder auf Verfügbar.

Zur Wiederherstellung nach diesem Zustand können Sie einige oder alle der folgenden Aktionen ausführen:

  • Erhöhen Sie die untere Kapazitätsgrenze für serverlose Instances, indem Sie den Mindestwert für die DocumentDB-Kapazitätseinheit (DCU) für den Cluster ändern. Dadurch werden Probleme vermieden, bei denen eine inaktive Datenbank auf eine Kapazität mit weniger Speicher herunterskaliert wird, als für die in Ihrem Cluster aktivierten Funktionen benötigt wird. Nachdem Sie die DCU-Einstellungen für den Cluster geändert haben, starten Sie die serverlose Instance neu. Dadurch wird evaluiert, ob Amazon DocumentDB den Status wieder auf Verfügbar zurücksetzen kann.

  • Erhöhen Sie die obere Kapazitätsgrenze für serverlose Instances, indem Sie den maximalen DCU-Wert für den Cluster ändern. Auf diese Weise werden Probleme vermieden, bei denen eine ausgelastete Datenbank nicht auf eine Kapazität mit genügend Speicher für die in Ihrem Cluster aktivierten Funktionen und die Datenbank-Workload hochskaliert werden kann. Nachdem Sie die DCU-Einstellungen für den Cluster geändert haben, starten Sie die serverlose Instance neu. Dadurch wird evaluiert, ob Amazon DocumentDB den Status wieder auf Verfügbar zurücksetzen kann.

  • Deaktivieren Sie Konfigurationseinstellungen, die Speicher-Overhead erfordern. Nehmen wir zum Beispiel an, Sie haben eine Funktion wie Performance Insights aktiviert, verwenden sie aber nicht. Wenn ja, können Sie sie ausschalten. Oder Sie können die Mindest- und Höchstkapazitätswerte für den Cluster höher anpassen, um dem von diesen Featuretypen verwendeten Arbeitsspeicher Rechnung zu tragen. Richtlinien zur Auswahl der minimalen und maximalen Kapazitätseinstellungen finden Sie unter Auswahl des Skalierungskapazitätsbereichs für einen serverlosen DocumentDB-Cluster.

  • Reduzieren Sie die Arbeitslast der Instanz. Sie können dem Cluster beispielsweise Reader-Instanzen hinzufügen, um die Last von schreibgeschützten Abfragen auf mehrere Instanzen zu verteilen.

Warum wird meine serverlose Instance nicht herunterskaliert?

In einigen Fällen wird DocumentDB serverless nicht auf die Mindestkapazität herunterskaliert, auch wenn die Datenbank nicht belastet wird. Dies kann aus einem der folgenden Gründe geschehen:

  • Performance Insights kann die Ressourcennutzung erhöhen und verhindern, dass die Datenbank auf die Mindestkapazität herunterskaliert wird. Nachstehend sind einige dieser Features aufgeführt:

  • Wenn eine Reader-Instanz nicht auf das Minimum herunterskaliert wird und die gleiche oder eine höhere Kapazität als die Writer-Instanz hat, überprüfen Sie die Prioritätsstufe der Reader-Instance. Serverlose DocumentDB-Leser-Instanzen auf Stufe 0 oder 1 haben eine Mindestkapazität, die mindestens so hoch ist wie die Writer-Instanz. Ändern Sie die Prioritätsstufe der Reader-Instance in 2 oder höher, sodass sie unabhängig von der Writer-Instance hoch- und herunterskaliert wird. Weitere Informationen finden Sie unter Serverlose Skalierung von Amazon DocumentDB.

  • Hohe Datenbank-Workloads können die Ressourcennutzung erhöhen.

  • Große Datenbank-Volumes können die Ressourcennutzung erhöhen. Amazon DocumentDB verwendet Speicher- und CPU-Ressourcen für die Clusterverwaltung. Amazon DocumentDB benötigt mehr CPU und Arbeitsspeicher, um Cluster mit größeren Datenbankvolumina zu verwalten. Wenn die Mindestkapazität Ihres Clusters unter der für die Clusterverwaltung erforderlichen Mindestkapazität liegt, skaliert Ihr Cluster nicht auf die Mindestkapazität herunter.

  • Wartungsaktivitäten im Hintergrund können den Ressourcenverbrauch in regelmäßigen Abständen erhöhen.

Wenn die Datenbank immer noch nicht auf die konfigurierte Mindestkapazität herunterskaliert werden kann, beenden Sie die Datenbank und starten Sie sie neu, um alle Speicherfragmente zurückzugewinnen, die sich im Laufe der Zeit möglicherweise angesammelt haben.

Anmerkung

Das Stoppen und Starten einer Datenbank führt zu Ausfallzeiten. Tun Sie dies nur, wenn es nötig ist.