Wir haben heute ein Anpassung an der automatischen Skalierung von Beach-Instanzen vorgenommen. Dieser Post erklärt den Hintergrund und erläutert die Auswirkungen.
Eine Instanz kann in Beach automatisch horizontal skaliert werden, um auf schwankende Last reagieren zu können.
Hierzu können die minimale und maximale Zahl an Replika festgelegt werden, sowie die CPU-Last, bei deren Überschreiten nach oben skaliert werden soll.

Einstellungen für die automatische Skalierung einer Instanz
Bisher entsprach das Verhalten im Hintergrund allerdings nicht ganz dem, was man als Nutzer erwartet.
Als Vergleichswert wurde nicht die tatsächlich maximal mögliche CPU-Auslastung herangezogen, sondern eine andere Ressourcen-Metrik. Das ist zwar das Standard-Verhalten des Kubernetes-Autoscalers, allerdings wurden dadurch Instanzen tendenziell "zu früh" nach oben skaliert.
Dies sorgte zwar für einen komfortablen Puffer, hatte aber teils unerwartet hohe Zahlen an Replika zur Folge.
Heute haben wir die Berechnung so angepasst, dass der angebene Wert für die CPU-Last sich tatsächlich auf das Maximum bezieht.
Dies sorgt zum einen dafür, dass nicht mehr so früh nach oben skaliert wird – und damit sollten mit der geringeren durchschnittlichen Zahl an laufenden Replika auch die Kosten sinken.
In diesem Screenshot (eines sehr deutlichen Beispiels) sieht man gut, wie die Änderung wirkt: Die Anzahl der Replika geht nach unten (grüner Kurve), während die durchschnittliche CPU-Last steigt (gelbe Kurve), und die Replika effizienter nutzt.

CPU-Last und Anzahl der Replika über die Zeit
Zum anderen kann es dadurch auch zu Problemen kommen, die durch die im Vergleich spätere Skalierung entstehen. Denn der Puffer für Lastspitzen mit steilen Flanken ist jetzt kleiner.
Wir haben in den betroffenen Projekten die Einstellungen für die automatische Skalierung angepasst, um diesen Effekt auszugleichen. Dennoch der Hinweis: Sollten in nächster Zeit unerwartete Probleme auftreten, kann durch Erhöhen der minimalen Zahl an Replika und / oder durch Herabsetzen der maximalen CPU-Last gegengesteuert werden.