Messen der Leistung von Azure Cosmos DB for NoSQL mit einem Benchmarking-Framework
Sie haben heute mehr denn je die Wahl, welchen Datenbanktyp Sie für Ihren Datenworkload verwenden möchten. Einer der wichtigsten Faktoren bei der Auswahl einer Datenbank ist die Leistung der Datenbank oder des Dienstes. Ein Leistungsvergleich kann jedoch umständlich und fehleranfällig sein. Das Benchmarking-Framework für Azure-Datenbanken vereinfacht den Prozess des Leistungsvergleichs mit beliebten Open-Source-Benchmarking-Tools mit reibungsarmen Rezepten, die gängige bewährte Methoden implementieren. In Azure Cosmos DB for NoSQL implementiert das Framework bewährte Methoden für das Java SDK und verwendet das Open-Source-Tool YCSB. In diesem Leitfaden verwenden Sie dieses Benchmarking-Framework, um eine Leseworkload zu implementieren und sich mit dem Framework vertraut zu machen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Azure Cosmos DB for NoSQL-Konto. Erstellen eines „API für NoSQL“-Kontos.
- Notieren Sie sich den Endpunkt-URI und den Primärschlüssel für das Konto.
- Azure Storage-Konto. Erstellen Sie ein Azure Storage-Konto.
- Notieren Sie sich die Verbindungszeichenfolge für das Speicherkonto. Anzeigen der Azure Storage-Verbindungszeichenfolge.
- Zweite leere Ressourcengruppe. Erstellen Sie eine Ressourcengruppe.
- Azure-Befehlszeilenschnittstelle (CLI)
Azure Cosmos DB-Konto erstellen
Zunächst erstellen Sie eine Datenbank und einen Container im vorhandenen API for NoSQL-Konto.
Navigieren Sie im Azure-Portal zu Ihrem vorhandenen API für NoSQL-Konto.
Wählen Sie im Ressourcenmenü Data Explorer aus.
Wählen Sie auf der Seite Daten-Explorer in der Befehlsleiste die Option Neuer Container aus.
Erstellen Sie im Dialogfeld Neuer Container einen neuen Container mit den folgenden Einstellungen:
Einstellung Wert Datenbank-ID ycsb
Typ des Datenbankdurchsatzes Manuell Menge des Datenbankdurchsatzes 400
Container-ID usertable
Partitionsschlüssel /id
Bereitstellen eines Benchmarking-Frameworks in Azure
Verwenden Sie jetzt eine Azure Resource Manager-Vorlage, um das Benchmarking-Framework mit dem Standardrezept für Lesevorgänge in Azure bereitzustellen.
Stellen Sie das Benchmarking-Framework mithilfe einer Azure Resource Manager-Vorlage bereit, die unter dem folgenden Link verfügbar ist.
Passen Sie auf der Seite Benutzerdefinierte Bereitstellung die folgenden Parameter an:
Wählen Sie Überprüfen und erstellen und dann Erstellen aus, um die Vorlage bereitzustellen.
Warten Sie, bis die Bereitstellung abgeschlossen ist.
Tipp
Der Bereitstellungsvorgang kann 5 bis 10 Minuten dauern.
Ergebnisse des Vergleichstests ansehen
Sie können jetzt das vorhandene Azure Storage-Konto verwenden, um den Status des Vergleichstests zu überprüfen und sich die Gesamtergebnisse anzeigen lassen. Der Status wird mithilfe einer Speichertabelle gespeichert, und die Ergebnisse werden im CSV-Format zu einem Speicherblob aggregiert.
Navigieren Sie im Azure-Portal zu Ihrem bestehenden Azure Storage-Konto.
Navigieren Sie zu einer Speichertabelle mit dem Namen ycsbbenchmarkingmetadata und suchen Sie die Entität mit dem Partitionsschlüssel
ycsb_sql
.Sehen Sie sich das Feld
JobStatus
der Tabelleninstanz genauer an. Zunächst ist der Status des AuftragsStarted
und die Zeile enthält einen Zeitstempel bei der EigenschaftJobStartTime
, aber nicht bei der EigenschaftJobFinishTime
.Warten Sie, bis der Auftrag den Status
Finished
hat und einen Zeitstempel bei der EigenschaftJobFinishTime
erhält.Tipp
Es kann etwa 20 bis 30 Minuten dauern, bis der Auftrag abgeschlossen ist.
Navigieren Sie im gleichen Konto zum Speichercontainer mit dem Präfix ycsbbenchmarking-*. Sehen Sie sich die Ausgabe- und Diagnoseblobs für das Tool genauer an.
Öffnen Sie das Blob aggregation.csv und sehen Sie sich den Inhalt an. Sie sollten jetzt einen CSV-Datensatz mit aggregierten Ergebnissen von allen Benchmarkclients sehen.
Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond) READ,180000,299,706,448255,1079,1159,2867
Rezepte
Das Benchmarking-Framework für Azure-Datenbanken enthält Rezepte zum Kapseln der Workloaddefinitionen, die für eine „1-Klick“-Erfahrung an das zugrunde liegende Benchmarking-Tool übergeben werden. Die Workloaddefinitionen wurden basierend auf den bewährten Methoden entworfen, die vom Azure Cosmos DB-Team und dem Team des Benchmarking-Tools veröffentlicht wurden. Die Rezepte wurden getestet und ihre Ergebnisse auf Konsistenz überprüft.
Sie können erwarten, dass für alle Lese- und Schreibrezepte im GitHub-Repository die folgenden Wartezeiten angezeigt werden:
Häufige Probleme
Dieser Abschnitt enthält die häufigsten Fehler, die beim Ausführen des Benchmarking-Tools auftreten können. Die Fehlerprotokolle für das Tool sind in der Regel in einem Container innerhalb des Azure Storage-Kontos verfügbar.
Wenn die Protokolle nicht im Speicherkonto gespeichert sind, liegt die Ursache für dieses Problem in der Regel in einer falschen oder fehlenden Speicherverbindungszeichenfolge. Ist dies der Fall, wird dieser Fehler in der Datei agent.out im Ordner /home/benchmarking der Client-VM aufgeführt.
Error while accessing storage account, exiting from this machine in agent.out on the VM
Wenn der Azure Cosmos DB-Endpunkt-URI falsch oder nicht erreichbar ist, wird dieser Fehler sowohl auf der Client-VM als auch im Speicherkonto in der Datei agent.out aufgeführt.
Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known
Wenn der Azure Cosmos DB-Schlüssel falsch ist, wird dieser Fehler sowohl auf der Client-VM als auch im Speicherkonto in der Datei agent.out aufgeführt.
The input authorization token can't serve the request. The wrong key is being used….
Nächste Schritte
- Weitere Informationen zum Benchmarking-Tool finden Sie im Leitfaden für Erste Schritte.