Erstellen von Azure Cosmos DB-Containern und -Datenbanken mit automatisch skaliertem Durchsatz
GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle
Mit Azure Cosmos DB können Sie Standarddurchsatz (manuell) oder per Autoskalierung bereitgestellten Durchsatz für Ihre Datenbanken und Container konfigurieren. Bei per Autoskalierung bereitgestelltem Durchsatz ermöglicht Azure Cosmos DB das Skalieren des Durchsatzes (RU/s) Ihrer Datenbank oder Ihres Containers automatisch und sofort.
Per Autoskalierung bereitgestellter Durchsatz eignet sich gut für unternehmenskritische Workloads, die über variable oder unvorhersehbare Datenverkehrsmuster verfügen und SLAs für hohe Leistung und Skalierung erfordern. Die Autoskalierung skaliert Workloads basierend auf der aktivsten Region und Partition. Bei nicht einheitlichen Workloads mit unterschiedlichen Workloadmustern in verschiedenen Regionen und Partitionen kann diese Skalierung zu nicht notwendigen Hochskalierungen führen. Die dynamische Skalierung oder dynamische Autoskalierung ist eine Erweiterung der Autoskalierung, die überall bereitgestellt wird, um die Skalierung nicht uniformer Workloads unabhängig von der Verwendung zu unterstützen, pro Region und pro Partitionsebene. Mit der dynamischen Skalierung können Sie Kosten sparen, wenn Sie häufig heiße Partitionen haben und/oder über mehrere Regionen verfügen.
Vorteile der automatischen Skalierung
Azure Cosmos DB-Datenbanken und -Container, die mit per Autoskalierung bereitgestelltem Durchsatz konfiguriert sind, bieten die folgenden Vorteile:
Einfach: Durch Autoskalierung ist die komplexe Verwaltung des Durchsatzes mit benutzerdefinierter Skripterstellung oder manueller Skalierung nicht mehr erforderlich.
Skalierbar: Mit Datenbanken und Containern wird der bereitgestellte Durchsatz nach Bedarf automatisch skaliert. Dabei entstehen keine Unterbrechungen für Client-Verbindungen, Anwendungen oder Azure Cosmos DB SLAs.
Kosteneffizient: Mit Autoskalierung können Sie den Durchsatz und die Kosten optimieren, indem Sie den Durchsatz situationsabhängig herunterskalieren. Sie zahlen nur für die Ressourcen, die von Ihren Workloads pro Stunde benötigt werden. Wenn Sie für alle Stunden in einem Monat eine maximale Anzahl von RUs/Sek. (Tmax) für die Autoskalierung festlegen und die gesamte Menge von Tmax für maximal 66 % (oder weniger) der Stunden nutzen, können Sie mit der Autoskalierung sparen. Zusätzlich zur dynamischen Skalierung ist das Hinzufügen einer sekundären Region für hohe Verfügbarkeit kostengünstiger, da jede Region und Partitionsskala unabhängig von der tatsächlichen Nutzung skaliert werden. Weitere Informationen finden Sie im Artikel Auswählen zwischen standardmäßig (manuell) bereitgestelltem und automatisch skaliertem Durchsatz.
Hochverfügbarkeit: Datenbanken und Container mit Autoskalierung verwenden dasselbe global verteilte, fehlertolerante, hochverfügbare Azure Cosmos DB-Back-End, um die Dauerhaftigkeit und ständige Hochverfügbarkeit von Daten sicherzustellen.
Anwendungsfälle der Autoskalierung
Anwendungsfälle des automatisch skalierten Durchsatzes:
Variable oder nicht vorhersehbare Workloads: Wenn Ihre Workloads variable oder unvorhersehbare Spitzenlasten aufweisen, unterstützt die Autoskalierung das automatische zentrale Hoch- und Herunterskalieren basierend auf der Nutzung. Beispiele hierfür sind Einzelhandelswebsites mit unterschiedlichen, saisonabhängigen Datenverkehrsmustern, IoT-Arbeitsauslastungen mit Spitzen zu verschiedenen Tageszeiten, Branchenanwendungen, die einige Male im Monat oder Jahr Auslastungsspitzen aufweisen, usw. Mit Autoskalierung ist es nicht mehr erforderliche, manuelle Vorkehrungen für die Spitzen- oder Durchschnittskapazität zu treffen.
Neue Anwendungen: Wenn Sie eine neue Anwendung entwickeln und sich nicht sicher sind, welchen Durchsatz (RU/s) Sie benötigen, erleichtert Ihnen die Autoskalierung die ersten Schritte. Sie können mit einem Einstiegspunkt von 100–1000 RU/s für die Autoskalierung beginnen, die Nutzung überwachen und im Lauf der Zeit den richtigen Durchsatz ermitteln.
Selten verwendete Anwendungen: Sie verfügen über eine Anwendung, die mehrmals pro Tag, Woche oder Monat für wenige Stunden genutzt wird, beispielsweise eine Anwendung/Website/Blogwebsite mit geringem Volumen. Die Autoskalierung passt die Kapazität an, um die Spitzenauslastung zu verarbeiten und Im Anschluss wieder nach unten zu skalieren.
Entwicklungs- und Testworkloads: Wenn Sie oder Ihr Team Azure Cosmos DB-Datenbanken und -Container während der Arbeitszeit verwenden, diese aber nicht in der Nacht oder an Wochenenden benötigen, können Sie durch die Autoskalierung Kosten sparen, indem Sie auf ein Minimum zentral herunterskalieren, wenn keine Nutzung erfolgt.
Geplante Produktionsworkloads/-abfragen: Wenn eine Reihe geplanter Anforderungen, Vorgänge oder Abfragen in Leerlaufzeiten ausgeführt werden soll, können Sie dies problemlos mit Autoskalierung durchführen. Wenn Sie die Workload ausführen müssen, wird der Durchsatz automatisch auf den erforderlichen Wert skaliert und anschließend herunterskaliert.
Das Entwickeln einer benutzerdefinierten Lösung für diese Probleme erfordert nicht nur sehr viel Zeit, sondern macht auch die Konfiguration oder den Code Ihrer Anwendung kompliziert. Mit der Autoskalierung werden die oben beschriebenen Szenarien vorkonfiguriert bereitgestellt, und die Notwendigkeit einer benutzerdefinierten oder manuellen Skalierung der Kapazität entfällt.
Anwendungsfälle der dynamischen Skalierung
Zu den Anwendungsfällen der dynamischen Skalierung gehören:
- Datenbankworkloads mit einer stark ausgelasteten primären Region und einer sekundären passiven Region für die Notfallwiederherstellung.
- Dank der dynamischen Skalierung ist das Erreichen einer hohen Verfügbarkeit mit mehreren Regionen kostengünstiger. Der sekundäre Bereich wird unabhängig voneinander skaliert und automatisch im Leerlauf skaliert. Die sekundäre Region wird auch automatisch hochskaliert, sobald sie aktiv wird, und während der Schreibreplikation aus der primären Region.
- Datenbankworkloads in mehreren Regionen.
- Diese Workloads verzeichnen oft eine ungleichmäßige Verteilung der Anforderungen auf die Regionen aufgrund des natürlichen Anstiegs des Datenverkehrs und der Einbrüche im Laufe des Tages. Beispielsweise kann eine Datenbank während der Geschäftszeiten in verschiedenen Zeitzonen der Welt aktiv sein.
Funktionsweise von per Autoskalierung bereitgestelltem Durchsatz
Beim Konfigurieren von Containern und Datenbanken mit Autoskalierung müssen Sie den maximalen Durchsatz Tmax
angeben. Azure Cosmos DB skaliert den Durchsatz T
, sodass 0.1*Tmax <= T <= Tmax
. Wenn Sie z. B. den maximalen Durchsatz auf 20.000 RU/s festlegen, wird der Durchsatz auf einen Wert zwischen 2000 und 20.000 RU/s skaliert. Da die Skalierung automatisch und sofort erfolgt, kann der Durchsatz zu jedem beliebigen Zeitpunkt und ohne Verzögerung bis zum festgelegten Wert Tmax
betragen.
Jede Stunde wird Ihnen der höchste Durchsatz T
in Rechnung gestellt, auf den das System innerhalb dieser Stunde skaliert wurde. Wenn die dynamische Skalierung aktiviert ist, basiert die Skalierung auf der RU/s-Verwendung bei jeder physischen Partition und Region. Da jede Partition und Region unabhängig voneinander skaliert werden, kann dies zu Kosteneinsparungen für nicht einheitliche Workloads führen, da unnötige Skalierungen vermieden werden.
Bei der Autoskalierung beträgt der Einstiegspunkt für den maximalen Durchsatz (Tmax
) 1000 RU/s und lässt sich in Schritten von 100 und 1000 RU/s skalieren. Sie können Tmax
in Schritten von 1.000 RU/s festlegen und den Wert jederzeit ändern.
Bei einer Sammlung mit 1000 RU/Sek. und 2 Partitionen kann jede Partition bis zu 500 RU/Sek. hochskaliert werden. Bei einer Stunde Aktivität würde die Nutzung wie folgt aussehen:
Region | Partition | Throughput | Nutzung | Hinweise |
---|---|---|---|---|
Schreiben | P1 | < = 500 RU/Sek. | 100 % | 500 RU/Sek., davon 50 RU/Sek. für Schreibvorgänge und 450 RU/Sek. für Lesevorgänge. |
Schreiben | P2 | < = 200 RU/Sek. | 40 %% | 200 RU/Sek. für alle Lesevorgänge. |
Lesen | P1 | < = 150 RU/Sek. | 30 % | 150 RU/Sek., davon 50 RU/Sek. für Schreibvorgänge, die aus der Schreibregion repliziert werden. 100 RU/Sek. werden für Lesevorgänge in dieser Region verwendet. |
Lesen | P2 | < = 50 RU/Sek. | 10 % |
Ohne dynamische Skalierung werden alle Partitionen einheitlich basierend auf der heißesten Partition skaliert. Da in diesem Beispiel die heißeste Partition eine Auslastung von 100 % hatte, werden alle Partitionen in den Schreib- und Lesebereichen auf 1000 RU/s skaliert, wodurch die insgesamte RU/s auf 2000 RU/s skaliert wird.
Da jeder Durchsatz einer Partition und Region unabhängig voneinander skaliert wird, würde die skalierte Gesamtgröße der RU/s bei dynamischer Skalierung 900 RU/s sein, was den tatsächlichen Datenverkehr besser widerspiegelt und die Kosten verringert.
Aktivieren der Autoskalierung für vorhandene Ressourcen
Verwenden des Microsoft Azure-Portals, der CLI oder der PowerShell um die Autoskalierung für eine vorhandene Datenbank oder einen vorhandenen Container zu aktivieren. Sie können jederzeit zwischen per Autoskalierung bereitgestelltem Durchsatz und Standarddurchsatz (manuell) wechseln. Weitere Informationen finden Sie in dieser Dokumentation.
Durchsatz- und Speicherlimits für die Autoskalierung
Für einen beliebigen Wert Tmax
kann die Datenbank oder der Container insgesamt 0.1 * Tmax GB
speichern. Nachdem diese Menge an Speicher erreicht wurde, wird der maximale Durchsatz automatisch basierend auf dem neuen Speicherwert erhöht, ohne dass sich dies auf Ihre Anwendung auswirkt.
Wenn Sie z. B. mit dem Höchstwert von 50.000 RU/s beginnen (Skalierungen zwischen 5000 und 50.000 RU/s), können Sie bis zu 5000 GB an Daten speichern. Wenn Sie 5000 GB überschreiten (z. B. 6000 GB), gilt als neuer Höchstwert 60.000 RU/s (Skalierungen zwischen 6000 und 60.000 RU/s).
Wenn Sie den Durchsatz auf Datenbankebene mit Autoskalierung verwenden, gilt für die ersten 25 Container ein maximaler automatisch skalierter Durchsatz von 1000 RU/s (Skalierungen zwischen 100 und 1000 RU/s), solange Sie nicht mehr als 100 GB Speicher benötigen. Weitere Informationen finden Sie in dieser Dokumentation.
Aktivieren der dynamischen Skalierung
Die dynamische Skalierung ist standardmäßig für alle Azure Cosmos DB-Konten aktiviert, die nach dem 25. September 2024 erstellt wurden. Kunden, die dieses Feature für ihre älteren Konten aktivieren möchten, können dies programmgesteuert über die Azure PowerShell/CLI/Rest-API oder über den Featuresbereich von Azure-Portal wie gezeigt tun:
Navigieren Sie im Azure-Portal zu Ihrem Azure Cosmos DB-Konto.
Navigieren Sie zur Seite Features.
Suchen und aktivieren Sie das Feature Dynamische Skalierung ( Autoskalierung pro Region und pro Partition).
Wichtig
Das Feature wird auf Kontoebene aktiviert, so dass alle Autoskalierungscontainer und Datenbanken mit gemeinsamem Durchsatz innerhalb des Kontos automatisch über diese Fähigkeit verfügen. Das Aktivieren dieses Features wirkt sich nicht auf Ressourcen in dem Konto aus, das den manuellen Durchsatz verwendet. Manuelle Ressourcen müssen in Autoskalierung geändert werden, um die dynamische Skalierung zu nutzen. Das Aktivieren dieses Features hat keine Auswirkungen auf Ausfallzeiten oder Leistungseinbußen. Dieses Feature gilt nicht für serverlose Konten.
Überwachen Metriken
Sie können die folgenden Metriken verwenden, um die Autoskalierung und die dynamische Skalierung zu überwachen:
Metrikname | Definition | Metrische Nutzung |
---|---|---|
Bereitgestellter Durchsatz | Zeigt die aggregierte höchste RU/s an, die für die gesamte Stunde skaliert ist, und stellt die Gesamtsumme für RU/s für die Stunde dar. | Sie können die Provisioned Throughput Metrik verwenden, um die RU/s anzuzeigen, die Sie pro Stunde in Rechnung stellen. Bei der Autoskalierung wird basierend auf der aktivsten Partition jede Stunde abgerechnet und auf alle Partitionen und Regionen angewendet. Bei der dynamischen automatischen Skalierung werden Sie für die aggregierten höchsten RU/s pro Stunde auf jeder Partitions- und Regionsebene berechnet. |
Normalisierter RU-Verbrauch | Diese Metrik stellt das Verhältnis der verbrauchten RU/s zur Bereitstellung von RU/s auf jeder Partitions- und Regionsebene dar. | Verwenden Sie diese Metrik, um zu ermitteln, ob der maximale Durchsatz der Autoskalen unter oder überlastet ist. Wenn der Metrikwert konsistent 100 % ist und ihre Anwendung Ratenbegrenzung (429 Fehlercode) anzeigt, benötigen Sie möglicherweise mehr RU/s. Wenn dieser Metrikwert dagegen niedrig ist und keine Ratenbegrenzung besteht, kann es Platz zum Optimieren und Verringern der RU/s geben. Erfahren Sie mehr über das Interpretieren und Debuggen von Ratenbegrenzungsfehlern des Typs 429. Die Normalized RU Consumption Metrik spiegelt die in der sekundären Region verbrauchten RU/s aufgrund des Schreibens des Replikationsdatenverkehrs von der primären, zusätzlich zu jedem Lesedatenverkehr auf der sekundären Region wider. |
Autoskaliert RU | Zeigt den dynamisch skalierten bereitgestellten Durchsatz auf jeder Partitions- und Regionsebene nur für dynamische, automatisch skalierte Konten an. | Verwenden Sie diese Metrik, um zu sehen, wie Partitionen in den einzelnen Regionen unabhängig von ihrer Verwendung skaliert werden. Verwenden Sie Azure Monitor-Metriken - Autoscaled RU , um zu analysieren, wie die neue automatische Skalierung auf Partitionen und Regionen angewendet wird. Filtern Sie nach dem gewünschten Datenbankkonto und Container, und filtern oder teilen Sie dann nach der Metrik Physical PartitionID. Diese Metrik zeigt alle Partitionen in den verschiedenen Regionen an. |
Vergleich – Container mit manuell skaliertem und automatisch skaliertem Durchsatz
Weitere Informationen finden Sie in diesem Dokument, in dem erläutert wird, wie Sie zwischen Standarddurchsatz (manuell) und Durchsatz mit Autoskalierung wählen.
Container mit Standarddurchsatz (manuell) | Container mit automatisch skaliertem Durchsatz | |
---|---|---|
Bereitgestellter Durchsatz (RU/s) | Manuell bereitgestellt. | Automatische und sofortige Skalierung basierend auf den Workload-Verwendungsmustern. |
Ratenbegrenzung von Anforderungen/Vorgängen (429) | Kann passieren, wenn die Nutzung die bereitgestellte Kapazität überschreitet. | Dies geschieht nicht, wenn Sie Durchsatz innerhalb des von Ihnen festgelegten Durchsatzbereichs mit Autoskalierung nutzen. |
Kapazitätsplanung | Sie müssen eine Kapazitätsplanung durchführen und den genauen benötigten Durchsatz festlegen. | Das System übernimmt automatisch die Kapazitätsplanung und -verwaltung. |
Preise | Sie zahlen für den manuell bereitgestellten Durchsatz pro Stunde nach dem Tarif für Standard-RU/s (manuell) auf Stundenbasis. | Sie zahlen pro Stunde für den höchsten Durchsatz, auf den das System innerhalb der Stunde zentral hochskaliert wurde. Bei Konten mit einer Schreibregion zahlen Sie für den genutzten Durchsatz auf Stundenbasis nach dem Tarif für Autoskalierungs-RUs/s pro Stunde. Bei Konten mit mehreren Schreibregionen fallen keine zusätzlichen Kosten für die Autoskalierung an. Sie zahlen für den genutzten Durchsatz auf Stundenbasis nach demselben Tarif für Schreib-RU/s für mehrere Regionen pro Stunde. |
Für folgende Workloadtypen am besten geeignet | Vorhersehbare und stabile Workloads | Nicht vorhersehbare und variable Workloads |
Migrieren des standardmäßig bereitgestellten Durchsatzes zur Autoskalierung
Benutzer, die zahlreiche Ressourcen von standardmäßig bereitgestelltem Durchsatz zur Autoskalierung migrieren möchten, können ein Azure CLI-Skript verwenden, um jede Durchsatzressource in einem Azure-Abonnement zur Autoskalierung zu übertragen. Weitere Informationen finden Sie unter Convert to Autoscale (Konvertieren zu Autoskalierung).
Nächste Schritte
- Erfahren Sie mehr in den häufig gestellten Fragen zur Autoskalierung.
- Erfahren Sie, wie Sie sich zwischen manuellem Durchsatz und automatisch skaliertem Durchsatz entscheiden.
- Erfahren Sie mehr über das Bereitstellen von automatisch skaliertem Durchsatz für eine Datenbank oder einen Container in Azure Cosmos DB.
- Erfahren Sie mehr über die Partitionierung in Azure Cosmos DB.
- Versuchen Sie, die Kapazitätsplanung für eine Migration zu Azure Cosmos DB durchzuführen? Sie können Informationen zu Ihrem vorhandenen Datenbankcluster für die Kapazitätsplanung verwenden.
- Wenn Sie lediglich die Anzahl der virtuellen Kerne und Server in Ihrem vorhandenen Datenbankcluster kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mithilfe von virtuellen Kernen oder virtuellen CPUs.
- Wenn Sie die typischen Anforderungsraten für Ihre aktuelle Datenbankworkload kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mit dem Azure Cosmos DB-Kapazitätsplaner