2017-11-26 5 views
1

arbeitet ich ein einfaches api ausgeführt wird, die bei jedem Aufruf ein Element aus einem DynamoDB Tisch bekommt, habe ich automatische Skalierung 10 auf ein Minimum von 25 und ein Maximum von 000DynamoDB Autoscaling nicht schnell genug

gesetzt

jedoch wenn ich 15 000 Anfragen mit einem Tool wie WRK senden oder hey, ich etwa 1000 502s,

  • DynamoDB Metriken zeigen, dass liest gedrosselt werden
  • die Skalierung Aktivitäten auf dem Tisch log zeigt, dass die RCU skaliert wurden 99 aber nicht mehr als das
  • lambda logs sh ow, dass die Funktion länger zu dauern beginnt, dauert es in der Regel etwa 20 ms zu laufen, aber die Funktion startet für 500.1500,3000 ms und Startzeitpunkt aus (Ich gehe davon aus, dass heißt, die durch die Drosselung)

Warum läuft funktioniert das Autoscaling nicht besser? Er skaliert nur bis 99RCUs aber mein max ist 10, 000.

Antwort

2

aus: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html

Was Sie als "Ziel Nutzung" definiert?

Zielauslastung ist das Verhältnis von verbrauchten Kapazitätseinheiten zu bereitgestellten Kapazitätseinheiten, ausgedrückt in Prozent. Application Auto Scaling verwendet seinen Zielverfolgungsalgorithmus, um sicherzustellen, dass die bereitgestellte Lesekapazität von ProductCatalog wie erforderlich angepasst wird, sodass die Auslastung bei oder nahe bei 70 Prozent bleibt.

auch, denke ich, dass der Hauptgrund, die für Sie nicht funktioniert automatisch skaliert, ist, weil Ihre Arbeit könnte für eine lange Zeit nicht erhöht bleiben:

„DynamoDB automatische Skalierung nur bereitgestellten Durchsatz Einstellungen ändert, wenn die tatsächlichen Die Arbeitslast bleibt für einen längeren Zeitraum von mehreren Minuten erhöht (oder gedrückt).

Die automatische Skalierung von DynamoDB ändert die bereitgestellten Durchsatzeinstellungen nur dann, wenn die tatsächliche Arbeitslast für mehrere Minuten erhöht (oder gesenkt) bleibt. Der Zielverfolgungsalgorithmus für die automatische Skalierung der Anwendung versucht, die Zielnutzung auf lange Sicht auf oder nahe dem von Ihnen gewählten Wert zu halten. Plötzliche, kurze Aktivitätsspitzen werden durch die integrierte Burst-Kapazität der Tabelle ausgeglichen. Weitere Informationen finden Sie unter Verwenden der Burst-Kapazität sparsam.

+0

Meine Zielnutzung ist 70%, danke für die Verbindung, der Verkehr wird für etwa eine Minute oder zwei aufrechterhalten, was dies erklären würde. Vielen Dank! – Jonathan

+1

@ Jonathan auch, dass Sie ein wenig Vorsicht verwenden möchten, wenn Sie eine DynamoDB-Tabelle über einen so großen Bereich skalieren, denn wenn es skaliert, teilt es Ihre Partitionen (gibt Ihnen mehr davon) und wenn es zurück skaliert Nach unten werden die Partitionen nicht wieder zusammengeführt und der bereitgestellte Durchsatz wird auf alle Partitionen aufgeteilt. Wenn es bei 10K RCU in 4 Partitionen aufgeteilt wird, haben Sie immer noch 4 Partitionen bei 25 RCU, was nur ~ 6 RCU pro Partition bedeutet. Die Mindestanzahl der Partitionen bei 10K RCU ist 4, kann jedoch höher sein und dieser Wert ist für Sie nicht sichtbar. –

Verwandte Themen