DAX-Clustergrößenleitfaden - Amazon-DynamoDB

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.

DAX-Clustergrößenleitfaden

In diesem Handbuch finden Sie Hinweise zur Auswahl einer geeigneten Amazon-DynamoDB-Accelerator-(DAX)-Clustergröße und des Knotentyps für Ihre Anwendung. Diese Anweisungen führen Sie durch die Schritte zum Schätzen des DAX-Datenverkehrs Ihrer Anwendung, zur Auswahl einer Clusterkonfiguration und zum Testen dieser Anwendung.

Wenn Sie über einen vorhandenen DAX-Cluster verfügen und prüfen möchten, ob er die entsprechende Anzahl und Größe von Knoten hat, lesen Sie bitte Skalieren eines DAX-Clusters.

Übersicht

Es ist wichtig, den DAX-Cluster entsprechend für Ihre Workload zu skalieren, unabhängig davon, ob Sie einen neuen Cluster erstellen oder einen vorhandenen Cluster verwalten. Wenn die Zeit vergeht und sich der Workload Ihrer Anwendung ändert, sollten Sie Ihre Skalierungsentscheidungen regelmäßig überprüfen, um sicherzustellen, dass sie weiterhin angemessen sind.

Der Prozess führt in der Regel folgende Schritte aus:

  1. Schätzung des Datenverkehrs. In diesem Schritt machen Sie Vorhersagen über das Datenvolumen, das Ihre Anwendung an DAX senden wird, die Art des Datenverkehrs (Lese- vs. Schreibvorgänge) und die erwartete Cache-Trefferrate.

  2. Durchführung eines Lasttests. In diesem Schritt erstellen Sie einen Cluster und senden Datenverkehr an ihn und spiegeln dabei Ihre Schätzungen aus dem vorherigen Schritt. Wiederholen Sie diesen Schritt, bis Sie eine geeignete Clusterkonfiguration gefunden haben.

  3. Produktionsüberwachung. Während Ihre Anwendung DAX in der Produktion verwendet, sollten Sie den Cluster überwachen, um kontinuierlich zu überprüfen, ob er immer noch korrekt skaliert ist, wenn sich Ihre Workload im Laufe der Zeit ändert.

Schätzung des Datenverkehrs

Es gibt drei Hauptfaktoren, die eine typische DAX-Workload charakterisieren:

Schätzen der Cache-Zugriffsrate

Wenn Sie bereits über einen DAX-Cluster verfügen, können Sie anhand der CloudWatch Metriken ItemCacheHits und ItemCacheMisses Amazon die Cache-Trefferquote ermitteln. Die Cache-Zugriffsrate ist gleich ItemCacheHits / (ItemCacheHits + ItemCacheMisses). Wenn Ihr Workload Query- oder Scan-Operationen beinhaltet, sollten Sie sich auch die Metriken QueryCacheHits, QueryCacheMisses, ScanCacheHits und ScanCacheMisses ansehen. Die Cache-Trefferraten variieren von Anwendung zu Anwendung und werden stark von der TTL-Einstellung (Time to Live) des Clusters beeinflusst. Typische Trefferraten für Anwendungen, die DAX verwenden, liegen bei 85-95 Prozent.

Schätzen von Lese- und Schreibkapazitätseinheiten

Wenn Sie bereits über DynamoDB-Tabellen für Ihre Anwendung verfügen, sehen Sie sich die Metriken ConsumedReadCapacityUnits und ConsumedWriteCapacityUnits CloudWatch an. Verwenden Sie die Statistik Sum und dividieren Sie durch die Anzahl der Sekunden im Zeitraum.

Wenn Sie auch bereits über einen DAX-Cluster verfügen, denken Sie daran, dass die DynamoDB-Metrik ConsumedReadCapacityUnits nur Cache-Fehlschläge berücksichtigt. Um eine Vorstellung von den Lesekapazitätseinheiten pro Sekunde zu erhalten, die von Ihrem DAX-Cluster verarbeitet werden, teilen Sie die Zahl durch Ihre Cache-Fehlerrate (d. h. 1 - Cache-Trefferrate).

Wenn Sie noch nicht über eine DynamoDB-Tabelle verfügen, finden Sie in der Dokumentation zu Lese- und Schreibkapazitätseinheiten Informationen zur Schätzung Ihres Datenverkehrs auf der Grundlage der geschätzten Anforderungsrate Ihrer Anwendung, der pro Anforderung abgerufenen Elemente und der Elementgröße.

Planen Sie bei der Erstellung von Datenverkehrsschätzungen das zukünftige Wachstum sowie die erwarteten und unerwarteten Spitzen, um sicherzustellen, dass Ihr Cluster genügend Spielraum für den Datenverkehr hat.

Lasttest

Der nächste Schritt nach der Schätzung des Datenverkehrs besteht darin, die Clusterkonfiguration unter Last zu testen.

  1. Für den ersten Lasttest empfehlen wir, dass Sie mit dem dax.r4.large-Knotentyp beginnen, dem speicheroptimierten Knotentyp mit einer Leistung mit den niedrigsten Fixkosten.

  2. Ein fehlertoleranter Cluster erfordert mindestens drei Knoten, verteilt auf drei Availability Zones. Wenn in diesem Fall eine Availability Zone nicht mehr verfügbar ist, wird die effektive Anzahl von Availability Zones um ein Drittel reduziert. Für den ersten Lasttest empfehlen wir, mit einem Cluster mit zwei Knoten zu beginnen, der den Ausfall einer Availability Zone in einem Cluster mit drei Knoten simuliert.

  3. Leiten Sie für die Dauer des Lasttests anhaltenden Datenverkehr (wie im vorherigen Schritt geschätzt) zu Ihrem Testcluster.

  4. Überwachen Sie die Leistung des Clusters während des Lasttests.

Idealerweise sollte das Datenverkehrsprofil, das Sie während des Lasttests steuern, dem realen Datenverkehr Ihrer Anwendung so ähnlich wie möglich sein. Dazu gehören die Aufteilung der Vorgänge (z. B. 70 Prozent GetItem, 25 Prozent Query und 5 Prozent PutItem), die Anforderungsrate für jeden Vorgang, die Anzahl der Elemente, auf die pro Anforderung zugegriffen wird, und die Verteilung der Elementgrößen. Um eine Cache-Zugriffsrate zu erreichen, die der erwarteten Cache-Zugriffsrate Ihrer Anwendung entspricht, achten Sie genau auf die Verteilung der Schlüssel im Testdatenverkehr.

Anmerkung

Seien Sie vorsichtig, wenn Sie die Last der T2-Knotentypen (dax.t2.small und dax.t2.medium) testen. T2-Knotentypen bieten eine dynamische CPU-Leistung, die je nach CPU-Guthaben des Knotens im Laufe der Zeit variiert. Ein DAX-Cluster, der auf T2-Knoten ausgeführt wird, scheint normal zu funktionieren, aber wenn einer der Knoten die Basisleistung seiner Instance überschreitet, gibt der Knoten sein aufgelaufenes CPU-Guthaben aus. Wenn der Gutschriftensaldo niedrig ist, wird die Leistung schrittweise auf das Basisleistungsniveau gesenkt.

Überwachen Sie Ihren DAX-Cluster während des Lasttests, um festzustellen, ob der Knotentyp, den Sie für den Lasttest verwenden, der richtige Knotentyp für Sie ist. Darüber hinaus sollten Sie während eines Lasttests Ihre Anforderungsrate und die Cache-Zugriffsrate überwachen, um sicherzustellen, dass Ihre Testinfrastruktur tatsächlich den von Ihnen beabsichtigten Datenverkehr steuert.

Sie sollten auf den Netzwerk-Byte-Verbrauch Ihres ausgewählten Cluster-Instance-Typs achten. Eine Überschreitung der verfügbaren Basisbandbreite für eine Amazon-EC2-Instance weist darauf hin, dass Ihr Cluster die Workload Ihrer Anwendung möglicherweise nicht unterstützt und skaliert werden muss.

Wenn Auslastungstests darauf hindeuten, dass die ausgewählte Clusterkonfiguration die Workload-Auslastung Ihrer Anwendung nicht aufrechterhalten kann, wird empfohlen, zu einem größeren Knotentyp zu wechseln, insbesondere wenn Sie eine hohe CPU-Auslastung auf dem Primärknoten im Cluster, hohe Bereinigungsraten oder eine hohe Cachespeicherauslastung feststellen. Wenn die Zugriffsraten konstant hoch sind und das Verhältnis zwischen Lese- und Schreibdatenverkehr hoch ist, sollten Sie dem Cluster weitere Knoten hinzufügen. Weitere Hinweise zum Verwenden eines größeren Knotentyps (vertikale Skalierung) oder zum Hinzufügen weiterer Knoten (horizontale Skalierung) finden Sie unter Skalieren eines DAX-Clusters.

Sie sollten den Lasttest wiederholen, nachdem Sie Änderungen an der Clusterkonfiguration vorgenommen haben.