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 Folgendes konfigurieren Lesen Sie Kapazitätseinheiten (RCUs) und Kapazitätseinheiten (WCU) schreiben unabhängig.

So rufen Sie Verbrauchskennzahlen aus Ihren Amazon Keyspaces-Tabellen ab

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

Lesekapazitätseinheiten Schreibkapazitätseinheiten

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ProvisionedReadCapacityUnits

ProvisionedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

Sie können dies entweder über den AWS CLI oder die AWS-Managementkonsole.

AWS CLI

Bevor Sie die Verbrauchsmetriken der Tabelle abrufen, müssen Sie zunächst einige historische Datenpunkte erfassen. Verwenden Sie dazu CloudWatch API.

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.2022T23:00:00
<end-time> Das Ende Ihres Auswertungsintervalls, im ISO8601-Format angegeben 22.02.2022T06: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 des write-calc.json Die 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 gelesenen Berechnungen 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 von read-calc.json Die 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, der im Skript standardmäßig auf 24 festgelegt ist. Dies entspricht einem Datenpunkt pro Stunde und 24 pro Tag.

AWS-Managementkonsole
  1. Loggen Sie sich in das ein AWS-Managementkonsole und navigiere zum CloudWatch Serviceseite unter Erste Schritte mit dem AWS-Managementkonsole. Wählen Sie das entsprechende AWS-Region falls erforderlich.

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

  3. Dadurch wird ein Dashboard mit zwei Panels 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 das Tabelle: Metriken Kategorie aus den Unterfenstern. Dies zeigt Ihnen die Tabellen in Ihrem aktuellen 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. In der Standardeinstellung CloudWatch wählt die statistische Funktion Durchschnitt für die Grafiken.

  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.

    Zum ersten Mal wählen Sie den Prozentsatz Funktion.

    Zweites Mal, wenn Sie das auswählen Prozentsatz Funktion.

  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 in der AWS CLI Abschnitt. 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 mit dem Namen ANOMALY_DETECTION_BAND. Für den Umfang dieses Verfahrens können Sie dies ignorieren, indem Sie das Kontrollkästchen auf der neu generierten Datei entfernen ad1-Metrik.

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

  11. Wählen Sie die Ausdruck 1 beschriften und aktualisieren Sie den Wert auf m1 und das Etikett zu Verbrauchte 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 Folgendes klicken Einzelheiten und die Formel ändern in consumedWCU/PERIOD(verbrauchter WCU). Dieser Schritt könnte auch einen anderen generieren 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 entsprechend um 100* (m1/provisionedWCU).

  14. Entfernen Sie das Kontrollkästchen von allen Metriken außer Auslastung in Prozent 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 bei 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-Kapazität ist eine Funktion von Amazon Keyspaces, die es Kunden ermöglicht, vorübergehend mehr zu konsumieren RCUs/WCUs als ursprünglich bereitgestellt (mehr als der bereitgestellte 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. Bei saisonalen Anwendungen, bei denen es während der Arbeitszeit zu Nutzungsspitzen kommt (die dann aber außerhalb der Arbeitszeiten auf fast Null fallen), könnten Sie von folgenden Vorteilen profitieren Planung der automatischen Skalierung von Anwendungen, wobei Sie angeben, zu welchen Tageszeiten (und Wochentagen) die bereitgestellte Kapazität erhöht und wann sie reduziert werden soll. Anstatt eine höhere Kapazität anzustreben, um die geschäftigen Zeiten abzudecken, können Sie auch von folgenden Vorteilen profitieren Automatische Skalierung der Amazon Keyspaces-Tabelle Konfigurationen, wenn Ihre Saisonalität weniger ausgeprägt ist.

Wie identifiziert man übermäßig bereitgestellte 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 (Maximal (ThrottleEvents) /Min (ThrottleEvents) im Intervall). Dies kann passieren, wenn Sie eine sehr hohe Arbeitslast haben, bei der der Verkehr an bestimmten Tagen (oder Tageszeiten) erheblich zunimmt, ansonsten aber konstant niedrig ist. In diesen Szenarien kann es von Vorteil sein, geplantes Auto Scaling für Anwendungen.