Zum Inhalt springen
Inhalt
Websites

Skalierung und Auto-Skalierung einer Node.js-App

Maschinelle Übersetzung. Das englische Original ist verfügbar.

Auto-Scaling vergrößert und verkleinert die Anzahl der Instanzen, die Ihre Node.js-App ausführen, je nachdem, wie sich die CPU-Last verändert, sodass stark frequentierte Zeiten mehr Kapazität erhalten und ruhige Phasen weniger kosten. Diese Anleitung behandelt den KPanel-Tab, jede Einstellung, was abgerechnet wird und wie Sie eine App sicher skalierbar machen.

Wo sich Scaling in KPanel befindet

  1. Melden Sie sich bei KPanel an.
  2. Klicken Sie in der linken Seitenleiste auf Websites und dann auf die Website.
  3. Öffnen Sie im linken Menü der Website Leistung und dann Skalierung.

Die direkte Adresse lautet /websites/<site-id>/autoscale. Die ältere Adresse /websites/<site-id>/scaling funktioniert weiterhin und führt Sie zur selben Stelle.

Auto-Scaling-Einstellungen für eine Node.js-App in KPanel

Der Tab erscheint nur bei Node.js-Websites. Er wird nicht im Menü einer WordPress-, WooCommerce-, statischen, PHP-, Python- oder Ruby-Website angezeigt, da der Mechanismus einen Node.js-Prozesscluster skaliert.

Ein Tab, eine Konfiguration

KPanel führte hier früher zwei Tabs, Skalierung und Autoscaling, über ein und demselben Satz von Einstellungen. Sie waren zwei Ansichten derselben Konfiguration, was nur zu Verwirrung führte. Deshalb gibt es jetzt einen einzigen Skalierung-Tab: Live-Status, die Einstellungen, aktuelle Skalierungsereignisse und das Nutzungs- und Kostenpanel für den aktuellen Abrechnungszeitraum, alles an einem Ort.

Wie es funktioniert

Ihre App läuft als Prozesscluster. Auto-Scaling beobachtet die durchschnittliche CPU-Auslastung über die laufenden Instanzen hinweg und fügt Instanzen hinzu oder entfernt sie gemäß den von Ihnen festgelegten Schwellenwerten.

Der Cluster-Modus ist erforderlich. Wenn Ihre App noch nicht im Cluster-Modus läuft, schaltet die Aktivierung von Auto-Scaling sie für Sie um, was einen kurzen Neustart erfordert. Die Seite informiert Sie, wenn das geschieht.

Den Live-Status lesen

Die Statuskarte zeigt drei Dinge:

  • Instanzen: wie viele gerade laufen.
  • Durchschn. CPU: die durchschnittliche CPU-Auslastung dieser Instanzen.
  • Cluster: ob die App im Cluster-Modus läuft. Steht dort „Nein", schaltet die Aktivierung von Auto-Scaling darauf um.

Läuft die App gar nicht, zeigt die Karte dies an, statt Nullen auszugeben.

Der Tab zeigt außerdem Letzte Skalierung, den Zeitpunkt des letzten Skalierungsereignisses, oder nie.

Die Einstellungen

EinstellungBereichWas es macht
Minimale Instanzen1 bis 16Die Untergrenze. Skaliert niemals darunter
Maximale Instanzen1 bis 16Die Obergrenze. Skaliert niemals darüber
Hochfahren bei CPU %5 bis 99Durchschnittliche CPU-Auslastung darüber fügt eine Instanz hinzu
Herunterfahren bei CPU %1 bis 95Durchschnittliche CPU-Auslastung darunter entfernt eine
Abkühlung (Sek.)30 bis 3600Mindestwartezeit zwischen Skalierungsaktionen

Der Hauptschalter befindet sich im Kopfbereich der Einstellungskarte. Ist Auto-Scaling ausgeschaltet, sind die Einstellungen abgeblendet und Ihre App bleibt bei ihrer aktuellen Instanzanzahl.

Sinnvolle Startwerte:

  • Minimale Instanzen 1 oder 2. Zwei, wenn Sie es sich nicht leisten können, dass der Neustart einer einzelnen Instanz die App offline bringt.
  • Maximale Instanzen auf dem Niveau, das Sie bei Spitzenlast zu zahlen bereit sind, nicht an der Obergrenze.
  • Hochfahren bei etwa 70 Prozent. Hoch genug, dass Sie nicht für ungenutzten Spielraum zahlen, niedrig genug, dass Zeit bleibt, Kapazität hinzuzufügen, bevor sich Anfragen stauen.
  • Herunterfahren bei etwa 30 Prozent. Lassen Sie einen großen Abstand zwischen den beiden Schwellenwerten.
  • Abkühlung von einigen Minuten. Dies ist die am meisten unterschätzte Einstellung.

Legt man die beiden CPU-Schwellenwerte zu dicht beieinander, kommt es zu Flattern: Der Cluster fährt hoch, fällt sofort unter den Herunterfahren-Schwellenwert, weil die Last nun breiter verteilt ist, fährt herunter, schnellt erneut hoch und das wiederholt sich. Lassen Sie einen großen Abstand und nutzen Sie eine großzügige Abkühlzeit. Flattern kostet Geld und destabilisiert die App.

Skalierungsereignisse

Der Tab listet aktuelle Skalierungsereignisse auf, neueste zuerst, jeweils mit Richtung, Instanzanzahl vorher und nachher, dem auslösenden CPU-Wert und dem Zeitpunkt.

Dies ist das Protokoll, das zu lesen ist, wenn sich die App fehlerhaft verhalten hat. Eine Flut von Hoch- und Herunterfahr-Ereignissen innerhalb weniger Minuten bedeutet, dass Ihre Schwellenwerte zu nah beieinanderliegen oder Ihre Abkühlzeit zu kurz ist. Ein einzelnes Hochfahren, das nie wieder zurückging, bedeutet, dass die Last hoch blieb, was eher eine Kapazitätsfrage als eine Konfigurationsfrage ist. Keine Ereignisse, obwohl Sie welche erwartet hätten, bedeutet entweder, dass die CPU-Auslastung nie einen Schwellenwert überschritten hat, oder dass Auto-Scaling ausgeschaltet ist.

Was Auto-Scaling kostet

Instanzen oberhalb der Basiszuteilung Ihres Plans werden gemessen und sekundengenau abgerechnet. Der Tab zeigt für den aktuellen Zeitraum:

  • Genutzte Instanzzeit in Stunden und Minuten, mit den rohen Instanz-Sekunden darunter.
  • Bisher ausgegeben in diesem Zeitraum.
  • Voraussichtliches Monatsende, hochgerechnet aus der bisherigen Nutzung.
  • Tracking, wie viele Nutzungsfenster von der erfassten Gesamtmenge bereits abgerechnet wurden.
  • Zeitraumfortschritt, vergangene Tage im Verhältnis zu den Tagen des Monats.

Der Preis pro Sekunde wird oben im selben Panel angezeigt, sodass der Wert, nach dem abgerechnet wird, stets neben der Nutzung sichtbar ist, auf die er sich bezieht.

Die Hochrechnung ist der Wert, den Sie im Auge behalten sollten. Sie wird aus der bisherigen Nutzung hochgerechnet, sodass eine ungewöhnlich arbeitsreiche Woche am Monatsanfang sie überhöht erscheinen lässt. Prüfen Sie sie nach ein paar Tagen und dann erneut zur Monatsmitte, bevor Sie Schlüsse ziehen. Ist sie höher als gewünscht, senken Sie die maximale Instanzanzahl, statt den Hochfahren-Schwellenwert anzuheben: Die Obergrenze ist eine feste Grenze, ein Schwellenwert ist nur ein Hinweis.

Das Herunterskalieren auf das Minimum beendet die Messung. Wenn Sie Auto-Scaling vollständig ausschalten, bleibt die App bei der Instanzanzahl, die sie gerade hat. Setzen Sie sie also zuerst auf das Minimum zurück, wenn Kosten der Grund für die Abschaltung sind.

Eine App sicher skalierbar machen

Die Seite enthält einen Warnhinweis, und er ist das Wichtigste darauf: Ihre Node.js-App muss cluster-sicher sein, um sauber über mehrere Instanzen hinweg zu skalieren.

In der Praxis bedeutet das:

Kein Session-Zustand im Arbeitsspeicher. Wenn die Sitzung eines angemeldeten Nutzers im Arbeitsspeicher einer einzelnen Instanz liegt, wird er abgemeldet, sobald eine Anfrage auf einer anderen Instanz landet. Verlagern Sie Sitzungen in einen gemeinsamen Speicher.

Kein Arbeitsspeicher-Cache, auf dessen Korrektheit Sie sich verlassen. Jede Instanz hat ihren eigenen. Ein Cache, der konsistent sein muss, muss gemeinsam genutzt werden.

Keine lokalen Dateisystemschreibvorgänge, die Sie später wieder auslesen wollen. Von einer Instanz lokal auf die Festplatte geschriebene Uploads sind für die anderen unsichtbar. Schreiben Sie in einen gemeinsamen Speicher.

Keine ungeschützten geplanten Aufgaben. Läuft ein Timer innerhalb der App, führt jede Instanz ihn aus, sodass ein nächtlicher Job bei vier Instanzen viermal läuft. Verlagern Sie geplante Aufgaben in einen Cron-Job oder sichern Sie sie mit einer Sperre ab. Siehe Cron-Jobs.

Keine Annahme, dass die Instanzanzahl stabil ist. Alles, was Arbeit nach Instanzindex aufteilt, bricht in dem Moment, in dem sich die Anzahl ändert.

Trifft etwas davon auf Ihre App zu, beheben Sie es, bevor Sie Auto-Scaling aktivieren. Eine App, die nicht cluster-sicher ist, versagt auf Weisen, die sporadisch und schwer zu reproduzieren sind, da sie davon abhängen, welche Instanz welche Anfrage bedient hat.

Fehlerbehebung

Der Schalter lässt sich nicht aktivieren. Die Aktivierung erfordert die Schreibberechtigung für die Website. Bei einer Nur-Lese-Rolle sind die Steuerelemente deaktiviert.

Die App wurde beim Aktivieren von Auto-Scaling neu gestartet. Erwartet. Das Umschalten in den Cluster-Modus erfordert einen Neustart, und das geschieht einmalig.

Nutzer werden zufällig abgemeldet. Klassisches Symptom für fehlende Cluster-Sicherheit. Sitzungen liegen im Arbeitsspeicher und Anfragen landen auf unterschiedlichen Instanzen.

Instanzen wurden hochskaliert und nie wieder heruntergefahren. Entweder blieb die Last über dem Herunterfahren-Schwellenwert, oder etwas hält die CPU-Auslastung unabhängig vom Datenverkehr hoch. Prüfen Sie die Ereignisliste und sehen Sie nach, was die App tatsächlich tut.

Ein geplanter Job lief mehrfach. Jede Instanz hat ihn ausgeführt. Verlagern Sie ihn in einen Cron-Job oder fügen Sie eine Sperre hinzu.

Nichts skaliert. Prüfen Sie, ob der Schalter aktiviert ist, die App läuft und der Cluster-Modus eingeschaltet ist. Prüfen Sie dann in der Ereignisliste, ob die CPU-Auslastung tatsächlich Ihren Hochfahren-Schwellenwert überschritten hat.

Die Kosten sind höher als erwartet. Prüfen Sie die Ereignisliste auf Flattern und senken Sie dann Ihre maximale Instanzanzahl.

Verwandte Seiten

War das hilfreich?

Sind Sie eine KI? Diese Seite als Markdown lesen

Verwandte Artikel

Verbindung über SFTP: FileZilla, Cyberduck und KommandozeileSFTP (Secure File Transfer Protocol) gibt dir direkten Zugriff auf die Dateien deiner Website auf dem Server.…SSL-Zertifikate und HTTPSDieser Artikel erklärt in einfachen Worten, was SSL ist, wie KapsuleHost SSL für Ihre Websites automatisch verwaltet und was zu tun ist, wenn bei Ihrem…Websites: Wo soll man anfangenWie Website-Hosting bei KapsuleHost funktioniert, was sich auf welchem Tab einer Website befindet, und welche Anleitung für die jeweilige Aufgabe die richtige…Website-Uptime-ÜberwachungJede Website bei KapsuleHost wird automatisch alle 60 Sekunden überprüft, und der Tab Uptime zeigt Ihnen das Ergebnis: aktuellen Status, Uptime-Prozentsatz,…

Kommen Sie nicht weiter?

Fragen Sie Kora, die Ihr Konto kennt, oder wenden Sie sich an unser Team.

KontaktSupport kontaktieren