Compute- und Speicherkonfigurationen für Azure Cosmos DB für MongoDB-vCore-Cluster
GILT FÜR: MongoDB-vCore
Computeressourcen werden in Form von virtuellen Kernen bereitgestellt und repräsentieren die logische CPU der zugrunde liegenden Hardware. Die Speichergröße für die Bereitstellung bezieht sich auf die für die Shards in Ihrem Cluster verfügbare Kapazität. Der Speicher wird für Datenbankdateien, temporäre Dateien, Transaktionsprotokolle und die Datenbankserverprotokolle verwendet. Sie können die Compute- und Speicherressourcen unabhängig voneinander auswählen. Die ausgewählten Compute- und Speicherwerte gelten für jeden Shard im Cluster.
Compute in Azure Cosmos DB for MongoDB vCore
Die RAM-Gesamtmenge in einem einzelnen Shard basiert auf der ausgewählten Anzahl von virtuellen Kernen.
Cluster tier (Clustertarif) | V-Kerne | Ein Shard, GiB RAM |
---|---|---|
M25 | 2 (burstfähig) | 8 |
M30 | 2 | 8 |
M40 | 4 | 16 |
M50 | 8 | 32 |
M60 | 16 | 64 |
M80 | 32 | 128 |
M200 | 64 | 256 |
Speicher in Azure Cosmos DB for MongoDB vCore
Durch die Gesamtmenge an bereitgestelltem Speicher wird auch die verfügbare E/A-Kapazität für jeden Shard im Cluster definiert.
Speichergröße, GiB | Maximale IOPS-Anzahl |
---|---|
32 | 3.500† |
64 | 3.500† |
128 | 3.500† |
256 | 3.500† |
512 | 3.500† |
1\.024 | 5\.000 |
2\.048 | 7\.500 |
4.095 | 7\.500 |
8\.192 | 16.000 |
16.384 | 18.000 |
32.767 | 20.000 |
† Max. IOPS mit freiem Datenträgerbursting. Speicher bis zu 512 GiB inklusive mit aktiviertem kostenlosem Datenträgerbursting.
Maximieren der IOPS für Ihre Compute-/Speicherkonfiguration
Jede Compute-Konfiguration verfügt über einen IOPS-Grenzwert, der von der Anzahl der virtuellen Kerne abhängt. Stellen Sie sicher, dass Sie die Compute-Konfiguration in Ihrem Cluster auswählen, um IOPS im ausgewählten Speicher vollständig zu nutzen.
Speichergröße | Speicher-IOPS bis zu | min. Computetarif | Mindestanzahl virtueller Kerne |
---|---|---|---|
bis zu 0,5 TiB | 3.500† | M30 | 2 virtuelle Kerne |
1 TiB | 5\.000 | M40 | 4 virtuelle Kerne |
2TiB | 7.500 | M50 | 8 virtuelle Kerne |
4 TiB | 7\.500 | M50 | 8 virtuelle Kerne |
8 TiB | 16.000 | M60 | 16 virtuelle Kerne |
16 TiB | 18.000 | M60 | 16 virtuelle Kerne |
32 TiB | 20.000 | M60 | 16 virtuelle Kerne |
† Max. IOPS mit freiem Datenträgerbursting. Speicher bis zu 512 GiB inklusive mit aktiviertem kostenlosem Datenträgerbursting.
Wenn Sie beispielsweise 8 TiB Speicher pro Shard oder mehr benötigen, stellen Sie sicher, dass Sie für die Compute-Konfiguration des Knotens mindestens 16 virtuelle Kerne auswählen. Mit dieser Auswahl können Sie die vom ausgewählten Speicher bereitgestellte IOPS-Nutzung maximieren.
Hinweise zu Compute und Speicher
Überlegungen zu Arbeitssatz und Arbeitsspeicher
In Azure Cosmos DB for MongoDB vCore bezieht sich der Arbeitssatz auf den Teil Ihrer Daten, der häufig aufgerufen und von Ihren Anwendungen verwendet wird. Er enthält sowohl die Daten als auch die Indizes, die während der typischen Vorgänge der Anwendung regelmäßig gelesen oder beschrieben werden. Das Konzept eines Arbeitssatzes ist wichtig für die Leistungsoptimierung, da MongoDB wie viele Datenbanken am besten funktioniert, wenn der Arbeitssatz in den RAM passt.
Um Ihren Arbeitssatz für die MongoDB-Datenbank zu definieren und zu verstehen, berücksichtigen Sie die folgenden Komponenten:
- Häufig verwendete Daten: Zu diesen Daten gehören Dokumente, die Ihre Anwendung regelmäßig liest oder aktualisiert.
- Indizes: Indizes, die in Abfragevorgängen verwendet werden, sind ebenfalls Teil des Arbeitssatzes, da sie in den Arbeitsspeicher geladen werden müssen, um schnellen Zugriff sicherzustellen.
- Anwendungsnutzungsmuster: Die Analyse der Nutzungsmuster Ihrer Anwendung kann helfen, zu erkennen, auf welche Teile Ihrer Daten am häufigsten zugegriffen wird.
Indem Sie den Arbeitssatz im RAM beibehalten, können Sie langsamere Datenträger-E/A-Vorgänge minimieren und so die Leistung Ihrer MongoDB-Datenbank verbessern. Wenn Sie feststellen, dass Ihr Arbeitssatz den verfügbaren RAM überschreitet, können Sie das Datenmodell optimieren, mehr RAM hinzufügen oder Sharding verwenden, um die Daten über mehrere Knoten zu verteilen.
Auswählen einer optimalen Konfiguration für eine Workload
Das Ermitteln der richtigen Berechnungs- und Speicherkonfiguration für Ihre Azure Cosmos DB for MongoDB vCore-Workload umfasst die Auswertung mehrerer Faktoren im Zusammenhang mit den Anforderungen und Nutzungsmustern Ihrer Anwendung. Zu den wichtigsten Schritten und Überlegungen zur Ermittlung der optimalen Konfiguration gehören:
Informieren über Ihre Workload
- Datenvolumen: Schätzen der Gesamtgröße Ihrer Daten, einschließlich Indizes.
- Lese-/Schreib-Verhältnis: Bestimmen des Verhältnisses von Lesevorgängen zu Schreibvorgängen.
- Abfragemuster: Analysieren der Arten von Abfragen, die Ihre Anwendung ausführt. Beispielsweise einfache Lesevorgänge, komplexe Aggregationen.
- Parallelität: Bewerten der Anzahl der gleichzeitigen Vorgänge, die Ihre Datenbank verarbeiten muss.
Überwachen der aktuellen Leistung
- Ressourcenverwendung: Verwenden Sie Überwachungstools zum Nachverfolgen von CPU, Arbeitsspeicher, Datenträger-E/A und Netzwerknutzung, bevor Sie Ihre Workload in Azure verschieben, und Überwachungsmetriken, sobald Sie mit der Ausführung Ihrer MongoDB-Workload auf einem Azure Cosmos DB for MongoDB vCore-Cluster beginnen.
- Leistungsmetriken: Überwachen Sie wichtige Leistungsmetriken wie Latenz, Durchsatz und Cachetrefferverhältnisse.
- Engpässe: Identifizieren Sie vorhandene Leistungsengpässe, z. B. hohe CPU-Auslastung, Speicherauslastung oder langsame Datenträger-E/A.
Schätzen der Ressourcenanforderungen
- Arbeitsspeicher: Stellen Sie sicher, dass Ihr Arbeitssatz (häufig verwendete Daten und Indizes) in den RAM passt. Wenn Ihre Arbeitssatzgröße den verfügbaren Arbeitsspeicher überschreitet, sollten Sie mehr RAM hinzufügen oder Ihr Datenmodell optimieren.
- CPU: Wählen Sie eine CPU-Konfiguration aus, die Ihre Anforderungen an die Abfragelast und Parallelität verarbeiten kann. CPU-intensive Workloads erfordern möglicherweise mehr Kerne. Verwenden Sie die Metrik „CPU Percent“ mit der Aggregation „Max“ in Ihrem Azure Cosmos DB for MongoDB vCore-Cluster, um historische Compute-Nutzungsmuster anzuzeigen.
- Speicher-IOPS: Wählen Sie Speicher mit ausreichenden IOPS aus, um Ihre Lese- und Schreibvorgänge zu verarbeiten. Verwenden Sie die Metrik „IOPS“ mit der Aggregation „Max“ in Ihrem Cluster, um die historische IOPS-Nutzung im Speicher anzuzeigen.
- Netzwerk: Stellen Sie eine angemessene Netzwerkbandbreite für die Verarbeitung der Datenübertragung zwischen Ihrer Anwendung und der Datenbank sicher, insbesondere für verteilte Einrichtungen. Stellen Sie sicher, dass Sie den Host für Ihre MongoDB-Anwendung so konfiguriert haben, dass er beschleunigte Netzwerktechnologien wie SR-IOV unterstützt.
Entsprechende Skalierung
- Vertikale Skalierung: Compute-/RAM-Skalierung abwärts und aufwärts und Speicherskalierung aufwärts.
- Compute: Erhöhen Sie den vCore/RAM auf einem Cluster, wenn Ihre Workload eine temporäre Erhöhung erfordert oder häufig längere Zeit 70 % der CPU-Auslastung überschreitet.
- Stellen Sie sicher, dass Sie über die entsprechende Datenaufbewahrung in Ihrer Azure Cosmos DB for MongoDB-vCore-Datenbank verfügen. Die Aufbewahrung ermöglicht es Ihnen, unnötige Speichernutzung zu vermeiden. Überwachen Sie die Speicherauslastung, indem Sie Warnungen festlegen für die Metriken „Speicher in Prozent“ und/oder „Verwendeter Speicher“ mit der Aggregation „Max“. Denken Sie über eine Vergrößerung des Speichers nach, wenn die Workload 70 % Nutzung übersteigt.
- Horizontale Skalierung: Denken Sie über die Verwendung mehrerer Shards für Ihren Cluster nach, um Ihre Daten über mehrere Azure Cosmos DB for MongoDB vCore-Knoten zu verteilen, um Leistungssteigerungen und eine bessere Kapazitätsverwaltung zu erzielen, wenn Ihre Workload wächst. Dies ist besonders nützlich für große Datasets (über 2–4 TiB) und Anwendungen mit hohem Durchsatz.
- Vertikale Skalierung: Compute-/RAM-Skalierung abwärts und aufwärts und Speicherskalierung aufwärts.
Testen und durchlaufen
- Benchmarking: Durchführen einer Messung für die am häufigsten verwendeten Abfragen mit unterschiedlichen Konfigurationen, um die Auswirkungen auf die Leistung zu bestimmen. Verwenden Sie CPU/RAM- und IOPS-Metriken und Benchmarking auf Anwendungsebene.
- Auslastungstests: Durchführen von Auslastungstests, um Produktionsworkloads zu simulieren und die Leistung Ihrer ausgewählten Konfiguration zu überprüfen.
- Kontinuierliche Überwachung: Überwachen Sie Ihre Azure Cosmos DB for MongoDB vCore-Bereitstellung kontinuierlich, und passen Sie Ressourcen nach Bedarf basierend auf wechselnden Workloads und Nutzungsmustern an.
Indem Sie diese Faktoren systematisch auswerten und Ihre Konfiguration kontinuierlich überwachen und anpassen, können Sie sicherstellen, dass Ihre MongoDB-Bereitstellung für Ihre spezifische Workload optimiert ist.
Hinweise zu Speicher
Die Entscheidung über die geeignete Speichergröße für Ihre Workload umfasst mehrere Überlegungen, um eine optimale Leistung und Skalierbarkeit zu gewährleisten. Überlegungen zur Speichergröße in Azure Cosmos DB for MongoDB vCore:
Schätzen der Datengröße:
- Berechnen Sie die erwartete Größe Ihrer Azure Cosmos DB for MongoDB vCore-Daten. Bedenken Sie Folgendes:
- Aktuelle Datengröße: Bei der Migration aus einer vorhandenen Datenbank.
- Wachstumsrate: Schätzen Sie, wie viele Daten im Laufe der Zeit hinzugefügt werden.
- Dokumentgröße und -struktur: Grundlagen zu Datenschemas und Dokumentgrößen, sofern sie sich auf die Speichereffizienz auswirken.
- Berechnen Sie die erwartete Größe Ihrer Azure Cosmos DB for MongoDB vCore-Daten. Bedenken Sie Folgendes:
Berücksichtigen von Indizes:
- Azure Cosmos DB for MongoDB vCore verwendet Indizes für eine effiziente Abfrage. Indizes verbrauchen zusätzlichen Speicherplatz.
- Schätzen Sie die Größe der Indizes basierend auf:
- Anzahl der Indizes.
- Größe indizierter Felder.
Überlegungen zur Leistung
- Die Datenträgerleistung wirkt sich auf Datenbankvorgänge aus, insbesondere für Workloads, deren Arbeitssatz nicht in den RAM passt. Bedenken Sie Folgendes:
- E/A-Durchsatz: Mit der Einheit IOPS (I/O Operations per Second, E/A-Vorgänge/Sek.) wird die Anzahl der Anforderungen angegeben, die pro Sekunde an Speicherdatenträger gesendet werden. Größere Speicher verfügen über mehr IOPS. Stellen Sie einen angemessenen Durchsatz für Lese-/Schreibvorgänge sicher. Verwenden Sie die Metrik „IOPS“ mit der Aggregation „Max“, um verwendete IOPS auf Ihrem Cluster zu überwachen.
- Latenz: Latenz ist die Zeit, die eine Anwendung zum Empfangen einer einzelnen Anforderung, deren Übertragung an die Speicherdatenträger und zum Zurücksenden der Antwort an den Client benötigt. Neben IOPS und Durchsatz ist die Wartezeit ein weiterer wichtiger Messwert für die Leistung einer Anwendung. Die Latenz wird weitgehend durch den Typ der verwendeten Speicher und die Speicherkonfiguration definiert. In einem verwalteten Dienst wie Azure Cosmos DB for MongoDB wird der schnelle Speicher wie Premium-SSD-Datenträger mit Einstellungen verwendet, die für die Reduzierung der Latenz optimiert sind.
- Die Datenträgerleistung wirkt sich auf Datenbankvorgänge aus, insbesondere für Workloads, deren Arbeitssatz nicht in den RAM passt. Bedenken Sie Folgendes:
Zukünftiges Wachstum und Skalierbarkeit:
- Planen Sie zukünftige Datenwachstums- und Skalierbarkeitsanforderungen.
- Weisen Sie mehr Speicherplatz zu, der über die aktuellen Anforderungen hinausgeht, um Wachstum ohne häufige Speichererweiterungen zu ermöglichen.
Beispielberechnung:
- Angenommen, Ihre anfängliche Datengröße beträgt 500 GiB.
- Mit Indizes kann sie auf 700 GiB wachsen.
- Wenn Sie erwarten, dass die Daten in zwei Jahren verdoppelt werden, planen Sie 1,4 TiB (700 GiB * 2) ein.
- Fügen Sie einen Puffer für Mehraufwand, Wachstum und betriebliche Anforderungen hinzu.
- Sie können heute mit 1 TiB Speicher beginnen und ihn auf 2 TiB skalieren, sobald seine Größe 800 GiB überschreitet.
Die Entscheidung über die Speichergröße umfasst eine Kombination aus der Schätzung aktueller und zukünftiger Datenanforderungen, unter Berücksichtigung der Indizierung und Komprimierung sowie der Sicherstellung einer angemessenen Leistung und Skalierbarkeit. Regelmäßige Überwachung und Anpassung auf der Grundlage der tatsächlichen Nutzungs- und Wachstumstrends sind ebenfalls entscheidend, um eine optimale MongoDB-Leistung aufrechtzuerhalten.