View a markdown version of this page

Auswerten Ihrer bereitgestellten Kapazität, um eine angemessene Bereitstellung zu erzielen - Amazon Keyspaces (für Apache Cassandra)

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.

Auswerten Ihrer bereitgestellten Kapazität, um eine angemessene Bereitstellung zu erzielen

Dieser Abschnitt bietet einen Überblick darüber, wie Sie beurteilen können, ob Ihre Amazon Keyspaces-Tabellen über die richtige Provisionierung verfügen. Wenn sich Ihre Arbeitslast weiterentwickelt, sollten Sie Ihre Betriebsabläufe entsprechend ändern, insbesondere wenn Ihre Amazon Keyspaces-Tabelle im Bereitstellungsmodus konfiguriert ist und Sie das Risiko eingehen, dass Ihre Tabellen zu hoch oder zu wenig bereitgestellt werden.

Für die in diesem Abschnitt beschriebenen Verfahren sind statistische Informationen erforderlich, die aus den Amazon Keyspaces-Tabellen erfasst werden sollten, die Ihre Produktionsanwendung unterstützen. Um das Verhalten Ihrer Anwendung zu verstehen, sollten Sie einen Zeitraum definieren, der aussagekräftig genug ist, um die saisonale Abhängigkeit Ihrer Anwendung zu erfassen. Wenn Ihre Anwendung beispielsweise wöchentliche Muster aufweist, sollte ein Zeitraum von drei Wochen ausreichen, um die Anforderungen an den Anwendungsdurchsatz zu analysieren.

Wenn Sie nicht wissen, wo Sie anfangen sollen, verwenden Sie für die folgenden Berechnungen die Datennutzung von mindestens einem Monat.

Bei der Bewertung der Kapazität können Sie für Amazon Keyspaces-Tabellen Read Capacity Units (RCUs) und Write Capacity Units (WCU) unabhängig voneinander konfigurieren.

So rufen Sie Verbrauchskennzahlen aus Ihren Amazon Keyspaces-Tabellen ab

Um die Tabellenkapazität zu bewerten, überwachen Sie die folgenden CloudWatch Metriken und wählen Sie die entsprechende Dimension aus, um die Tabelleninformationen abzurufen:

Lesekapazitätseinheiten Schreibkapazitätseinheiten

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ProvisionedReadCapacityUnits

ProvisionedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

Sie können dies entweder über AWS CLI oder über das tun AWS-Managementkonsole.

AWS CLI

Bevor Sie die Messwerte für den Tabellenverbrauch abrufen, müssen Sie zunächst einige historische Datenpunkte mithilfe der CloudWatch API erfassen.

Erstellen Sie zunächst zwei Dateien: write-calc.json und read-calc.json. Diese Dateien stellen die Berechnungen für die Tabelle dar. Sie müssen einige der Felder aktualisieren, wie in der folgenden Tabelle angegeben, um sie an Ihre Umgebung anzupassen.

Anmerkung

Wenn der Tabellenname in Ihrem Konto nicht eindeutig ist, müssen Sie auch den Namen des Schlüsselraums angeben.

Feldname Definition Beispiel
<table-name> Der Name der Tabelle, die Sie analysieren SampleTable
<period> Der Zeitraum, den Sie zur Bewertung des Auslastungsziels verwenden, basierend auf Sekunden Für einen Zeitraum von 1 Stunde müssen Sie Folgendes angeben: 3600
<start-time> Der Beginn Ihres Auswertungsintervalls, im ISO8601-Format angegeben 21.02.2022 T23:00:00
<end-time> Das Ende Ihres Auswertungsintervalls, im ISO8601-Format angegeben 22.02.2022 T06:00:00

Die Datei mit den Schreibberechnungen ruft die Anzahl der WCU ab, die im angegebenen Zeitraum für den angegebenen Datumsbereich bereitgestellt und verbraucht wurden. Außerdem wird ein Prozentsatz der Auslastung generiert, der für Analysen verwendet werden kann. Der vollständige Inhalt der write-calc.json Datei sollte wie im folgenden Beispiel aussehen.

{ "MetricDataQueries": [ { "Id": "provisionedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>"" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedWCU/PERIOD(consumedWCU)", "Label": "Consumed WCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedWCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

Die Datei mit den Lesekalkulationen verwendet eine ähnliche Metrik. Diese Datei ruft ab, wie viele RCUs während des angegebenen Zeitraums für den angegebenen Datumsbereich bereitgestellt und verbraucht wurden. Der Inhalt der read-calc.json Datei sollte wie in diesem Beispiel aussehen.

{ "MetricDataQueries": [ { "Id": "provisionedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedRCU/PERIOD(consumedRCU)", "Label": "Consumed RCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedRCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

Sobald Sie die Dateien erstellt haben, können Sie mit dem Abrufen der Nutzungsdaten beginnen.

  1. Um die Schreibnutzungsdaten abzurufen, geben Sie den folgenden Befehl ein:

    aws cloudwatch get-metric-data --cli-input-json file://write-calc.json
  2. Geben Sie den folgenden Befehl ein, um die gelesenen Nutzungsdaten abzurufen:

    aws cloudwatch get-metric-data --cli-input-json file://read-calc.json

Das Ergebnis für beide Abfragen ist eine Reihe von Datenpunkten im JSON-Format, die für Analysen verwendet werden können. Ihre Ergebnisse hängen von der Anzahl der angegebenen Datenpunkte, dem Zeitraum und Ihren eigenen spezifischen Workload-Daten ab. Es könnte wie im folgenden Beispiel aussehen.

{ "MetricDataResults": [ { "Id": "utilizationPercentage", "Label": "Utilization Percentage", "Timestamps": [ "2022-02-22T05:00:00+00:00", "2022-02-22T04:00:00+00:00", "2022-02-22T03:00:00+00:00", "2022-02-22T02:00:00+00:00", "2022-02-22T01:00:00+00:00", "2022-02-22T00:00:00+00:00", "2022-02-21T23:00:00+00:00" ], "Values": [ 91.55364583333333, 55.066631944444445, 2.6114930555555556, 24.9496875, 40.94725694444445, 25.61819444444444, 0.0 ], "StatusCode": "Complete" } ], "Messages": [] }
Anmerkung

Wenn Sie einen kurzen Zeitraum und einen langen Zeitraum angeben, müssen Sie möglicherweise den MaxDatapoints Wert ändern, der im Skript standardmäßig auf 24 festgelegt ist. Dies entspricht einem Datenpunkt pro Stunde und 24 pro Tag.

AWS-Managementkonsole
  1. Melden Sie sich bei der an AWS-Managementkonsole und navigieren Sie zur CloudWatch Serviceseite unter Erste Schritte mit dem AWS-Managementkonsole. Wählen Sie bei AWS-Region Bedarf das entsprechende aus.

  2. Suchen Sie in der linken Navigationsleiste den Abschnitt Metriken und wählen Sie Alle Metriken aus.

  3. Dadurch wird ein Dashboard mit zwei Bereichen geöffnet. Der obere Bereich zeigt Ihnen die Grafik und der untere Bereich enthält die Metriken, die Sie grafisch darstellen möchten. Wählen Sie das Amazon Keyspaces-Menü.

  4. Wählen Sie in den Unterfenstern die Kategorie Table Metrics aus. Dies zeigt Ihnen die Tabellen in Ihrer aktuellen Version AWS-Region.

  5. Ermitteln Sie Ihren Tabellennamen, indem Sie im Menü nach unten scrollen und die Metriken für Schreibvorgänge auswählen: ConsumedWriteCapacityUnits und ProvisionedWriteCapacityUnits.

    Anmerkung

    In diesem Beispiel geht es um Metriken für Schreibvorgänge, Sie können diese Schritte jedoch auch verwenden, um die Metriken für Lesevorgänge grafisch darzustellen.

  6. Wählen Sie die Registerkarte Graphed metrics (2) (Grafisch dargestellte Metriken (2)) aus, um die Formeln zu ändern. CloudWatch Wählt standardmäßig die Statistikfunktion Durchschnitt für die Grafiken aus.

  7. Wenn beide grafisch dargestellten Metriken ausgewählt sind (Kontrollkästchen auf der linken Seite), wählen Sie das Menü Add math (Math. hinzufügen), dann Common (Allgemein) und schließlich die Funktion Percentage (Prozent) aus. Wiederholen Sie den Vorgang zweimal.

    Wählen Sie zum ersten Mal die Prozentfunktion aus.

    Zweites Mal, wenn Sie die Prozentfunktion auswählen.

  8. Zu diesem Zeitpunkt sollten vier Metriken im unteren Menü aufgeführt sein. Befassen wir uns nun mit der Berechnung von ConsumedWriteCapacityUnits. Um konsistent zu sein, müssen Sie die Namen denen zuordnen, die Sie im AWS CLI Abschnitt verwendet haben. Klicken Sie auf die m1 ID und ändern Sie diesen Wert in consumedWCU.

  9. Ändern Sie die Statistik von Average (Durchschnitt) in Sum (Summe). Diese Aktion erstellt automatisch eine weitere Metrik namens ANOMALY_DETECTION_BAND. Für den Umfang dieses Verfahrens können Sie dies ignorieren, indem Sie das Kontrollkästchen für die neu generierte ad1-Metrik entfernen.

  10. Wiederholen Sie Schritt 8, um die m2 ID in provisionedWCU umzubenennen. Lassen Sie die Statistik auf Average (Durchschnitt) eingestellt.

  11. Wählen Sie das Label Expression1 und aktualisieren Sie den Wert auf m1 und das Label auf Consumed WCUs.

    Anmerkung

    Stellen Sie sicher, dass Sie nur m1 (Kontrollkästchen links) und provisionedWCU ausgewählt haben, damit die Daten richtig angezeigt werden. Aktualisieren Sie die Formel, indem Sie auf Details klicken und die Formel in consumedWCU/PERIOD (ConsumedWCU) ändern. Dieser Schritt generiert möglicherweise auch eine weitere ANOMALY_DETECTION_BAND-Metrik, aber für den Umfang dieses Verfahrens können Sie sie ignorieren.

  12. Sie sollten jetzt zwei Grafiken haben: eine, die Ihre bereitgestellten WCUs in der Tabelle anzeigt, und eine andere, die die verbrauchten WCUs angibt.

  13. Aktualisieren Sie die Prozentformel, indem Sie die Grafik für Expression2 (e2) auswählen. Benennen Sie die Labels und IDs in utilizationPercentage um. Benennen Sie die Formel so um, dass sie 100* () entspricht. m1/provisionedWCU

  14. Entfernen Sie das Kontrollkästchen von allen Metriken außer UtilizationPercentage, um Ihre Nutzungsmuster zu visualisieren. Das Standardintervall ist auf 1 Minute festgelegt, Sie können es jedoch nach Bedarf ändern.

Die Ergebnisse, die Sie erhalten, hängen von den tatsächlichen Daten Ihres Workloads ab. Bei Intervallen mit einer Auslastung von mehr als 100% kann es zu Fehlern bei niedriger Durchsatzkapazität kommen. Amazon Keyspaces bietet Burst-Kapazität, aber sobald die Burst-Kapazität erschöpft ist, kommt es bei Werten über 100% zu Fehlern mit niedriger Durchsatzkapazität.

Wie identifiziert man zu wenig bereitgestellte Amazon Keyspaces-Tabellen

Bei den meisten Workloads gilt eine Tabelle als unzureichend bereitgestellt, wenn sie konstant mehr als 80% der bereitgestellten Kapazität verbraucht.

Burst-Capacity ist eine Funktion von Amazon Keyspaces, die es Kunden ermöglicht, vorübergehend mehr RCUs/WCUs als ursprünglich bereitgestellt zu nutzen (mehr als den bereitgestellten Durchsatz pro Sekunde, der für die Tabelle definiert wurde). Die Burst-Kapazität soll plötzliche Zunahmen des Datenverkehrs aufgrund von besonderen Ereignissen oder Auslastungsspitzen auffangen. Diese Burst-Kapazität ist begrenzt. Weitere Informationen finden Sie unter. Effektive Nutzung von Burst-Kapazitäten in Amazon Keyspaces Sobald die ungenutzten RCUs und WCUs erschöpft sind, kann es zu Durchsatzfehlern mit niedriger Kapazität kommen, wenn Sie versuchen, mehr Kapazität als bereitgestellt zu verbrauchen. Wenn sich Ihr Anwendungsdatenverkehr der Auslastungsrate von 80% nähert, ist das Risiko, dass Fehler bei niedrigem Durchsatz auftreten, erheblich höher.

Die Regel der Auslastungsrate von 80 % hängt von der Saisonalität Ihrer Daten und dem Wachstums Ihres Datenverkehrs ab. Betrachten Sie folgende Szenarien:

  • Wenn Ihr Datenverkehr in den letzten 12 Monaten bei einer Auslastung von ~ 90 % stabil war, hat Ihre Tabelle genau die richtige Kapazität.

  • Wenn Ihr Anwendungsdatenverkehr monatlich um 8 % wächst, werden Sie in weniger als 3 Monaten 100 % erreichen.

  • Auch wenn Ihr Anwendungsdatenverkehr monatlich um 5 % wächst, werden Sie in etwas mehr als 4 Monaten 100 % erreichen.

Die Ergebnisse der obigen Abfragen vermitteln ein Bild Ihrer Auslastungsrate. Verwenden Sie sie als Orientierungshilfe für die Auswertung weiterer Metriken, die bei der Entscheidung, Ihre Tabellenkapazität nach Bedarf zu erhöhen, hilfreich sein können (z. B. monatliche oder wöchentliche Wachstumsrate). Legen Sie gemeinsam mit Ihrem Operations-Team fest, welcher Prozentsatz für Ihren Workload und Ihre Tabellen geeignet ist.

Es gibt spezielle Szenarien, in denen die Daten verzerrt sind, wenn Sie sie täglich oder wöchentlich analysieren. Beispielsweise könnten Sie bei saisonalen Anwendungen, bei denen es während der Arbeitszeit zu Auslastungsspitzen kommt (die dann aber außerhalb der Arbeitszeiten auf fast Null sinken), von der Planung der automatischen Anwendungsskalierung profitieren, bei der Sie die Stunden am Tag (und die Wochentage) angeben, um die bereitgestellte Kapazität zu erhöhen, sowie den Zeitpunkt, zu dem sie reduziert werden soll. Anstatt eine höhere Kapazität anzustreben, um die geschäftigen Zeiten abzudecken, können Sie auch von der automatischen Skalierung der Amazon Keyspaces-Tabellenkonfigurationen profitieren, wenn Ihre Saisonalität weniger ausgeprägt ist.

So identifizieren Sie zu viele Amazon Keyspaces-Tabellen

Die mit den obigen Skripts erhaltenen Abfrageergebnisse liefern die für eine erste Analyse erforderlichen Datenpunkte. Wenn Ihr Datensatz für mehrere Intervalle Auslastungswerte von weniger als 20 % aufweist, wurde für Ihre Tabelle möglicherweise zu viel Kapazität bereitgestellt. Um genauer herauszufinden, ob Sie die Anzahl der WCUs und RCUs reduzieren müssen, sollten Sie die anderen Messwerte in den Intervallen erneut überprüfen.

Wenn Ihre Tabelle mehrere Intervalle mit geringer Nutzung enthält, können Sie von der Verwendung von Application Auto Scaling-Richtlinien profitieren, indem Sie entweder Application Auto Scaling planen oder einfach die standardmäßigen Application Auto Scaling-Richtlinien für die Tabelle konfigurieren, die auf der Auslastung basieren.

Wenn Sie eine Arbeitslast mit einem niedrigen Verhältnis von Auslastung zu hoher Drosselung haben (Max (ThrottleEvents) /Min (ThrottleEvents) im Intervall), kann dies passieren, wenn Sie eine sehr hohe Arbeitslast haben, bei der der Datenverkehr an bestimmten Tagen (oder Tageszeiten) erheblich zunimmt, ansonsten aber konstant niedrig ist. In diesen Szenarien kann es von Vorteil sein, zeitgesteuertes Application Auto Scaling zu verwenden.