Auto-scaling vergroot en verkleint het aantal instanties dat je Node.js-app uitvoert naarmate de CPU-belasting verandert, zodat drukke periodes meer capaciteit krijgen en rustige periodes minder kosten. Deze gids behandelt het KPanel-tabblad, elke instelling, wat er gefactureerd wordt en hoe je een app veilig schaalbaar maakt.
Waar Schaling Zich Bevindt in KPanel
- Log in bij KPanel.
- Klik op Websites in de linkerzijbalk en klik vervolgens op de site.
- Open in het linkermenu van de site Prestaties en daarna Schaling.
Het directe adres is /websites/<site-id>/autoscale. Het oudere adres /websites/<site-id>/scaling werkt nog steeds en stuurt je naar dezelfde plek.

Het tabblad verschijnt alleen bij Node.js-sites. Het staat niet in het menu voor een WordPress-, WooCommerce-, statische, PHP-, Python- of Ruby-site, omdat het mechanisme een Node.js-procescluster schaalt.
Eén Tabblad, Eén Configuratie
KPanel had hier vroeger twee tabbladen, Schaling en Automatische schaling, over één set instellingen. Het waren twee weergaven van dezelfde configuratie, wat alleen maar voor verwarring zorgde, dus zijn ze nu samengevoegd tot één tabblad Schaling: live status, de instellingen, recente schaalgebeurtenissen en het gebruiks- en kostenoverzicht voor de huidige factureringsperiode, allemaal op één plek.
Hoe Het Werkt
Je app draait als een procescluster. Auto-scaling houdt de gemiddelde CPU over de actieve instanties in de gaten en voegt instanties toe of verwijdert ze op basis van de drempelwaarden die je instelt.
Clustermodus is vereist. Als je app nog niet in clustermodus draait, schakelt het inschakelen van auto-scaling dit automatisch om, wat een korte herstart met zich meebrengt. De pagina laat zien wanneer dit gebeurt.
De Live Status Lezen
De statuskaart toont drie dingen:
- Instanties: hoeveel er op dit moment actief zijn.
- Gemiddelde CPU: de gemiddelde CPU over die instanties.
- Cluster: of de app in clustermodus draait. Staat hier nee, dan schakelt het inschakelen van auto-scaling dit om.
Als de app helemaal niet draait, vermeldt de kaart dit in plaats van nullen te tonen.
Het tabblad toont ook Laatste schaling, het tijdstip van de meest recente schaalgebeurtenis, of nooit.
De Instellingen
| Instelling | Bereik | Wat het doet |
|---|---|---|
| Min instanties | 1 tot 16 | De ondergrens. Schaalt nooit hieronder |
| Max instanties | 1 tot 16 | De bovengrens. Schaalt nooit hierboven |
| Omhoog schalen bij CPU % | 5 tot 99 | Gemiddelde CPU boven deze waarde voegt een instantie toe |
| Omlaag schalen bij CPU % | 1 tot 95 | Gemiddelde CPU onder deze waarde verwijdert er een |
| Afkoelperiode (sec) | 30 tot 3600 | Minimale wachttijd tussen schaalacties |
De hoofdschakelaar is de schakelaar bovenaan de instellingenkaart. Als auto-scaling uitstaat, zijn de instellingen gedimd en blijft je app op het huidige aantal instanties staan.
Verstandige startwaarden:
- Min instanties 1 of 2. Twee als je het niet kunt hebben dat een herstart van één instantie de app offline haalt.
- Max instanties op wat je bereid bent te betalen op piekmomenten, niet op het absolute maximum.
- Omhoog schalen rond de 70 procent. Hoog genoeg zodat je niet betaalt voor speelruimte die je nooit gebruikt, laag genoeg zodat er tijd is om capaciteit toe te voegen voordat verzoeken in de wachtrij komen.
- Omlaag schalen rond de 30 procent. Houd een ruime marge tussen de twee drempelwaarden.
- Afkoelperiode van enkele minuten. Dit is de meest onderschatte instelling.
Als je de twee CPU-drempelwaarden te dicht bij elkaar instelt, ontstaat er "flapping": het cluster schaalt omhoog, zakt meteen onder de drempel voor omlaag schalen omdat de belasting nu breder verdeeld is, schaalt omlaag, piekt opnieuw, en zo verder. Houd een ruime marge aan en gebruik een ruime afkoelperiode. Flapping kost geld en destabiliseert de app.
Schaalgebeurtenissen
Het tabblad toont een lijst van recente schaalgebeurtenissen, nieuwste eerst, elk met de richting, het aantal instanties voor en na, de CPU-waarde die het triggerde, en het tijdstip.
Dit is het logboek om te raadplegen wanneer de app zich misdroeg. Een reeks omhoog- en omlaaggebeurtenissen binnen enkele minuten betekent dat je drempelwaarden te dicht bij elkaar liggen of je afkoelperiode te kort is. Een enkele opschaling die nooit meer terugkeert naar beneden betekent dat de belasting hoog bleef, wat een capaciteitsvraagstuk is in plaats van een configuratievraagstuk. Geen enkele gebeurtenis terwijl je er wel had verwacht, betekent dat de CPU nooit een drempel heeft overschreden, of dat auto-scaling uitgeschakeld is.
Wat Auto-Scaling Kost
Instanties boven de basistoewijzing van je abonnement worden gemeten en per seconde gefactureerd. Het tabblad toont voor de huidige periode:
- Gebruikte instantie-tijd, in uren en minuten, met de ruwe instantie-seconden eronder.
- Tot nu toe uitgegeven in deze periode.
- Verwachte stand einde maand, geëxtrapoleerd uit het gebruik tot nu toe.
- Tracking, hoeveel gebruiksvensters gefactureerd zijn van het totaal geregistreerde aantal.
- Voortgang periode, verstreken dagen ten opzichte van het totale aantal dagen in de maand.
Het tarief per seconde staat bovenaan hetzelfde paneel, zodat het bedrag waarop je gefactureerd wordt altijd zichtbaar is naast het gebruik waarop het van toepassing is.
De prognose is het getal om in de gaten te houden. Deze wordt geëxtrapoleerd uit wat je tot nu toe hebt gebruikt, dus een ongewoon drukke week vroeg in de maand zal het bedrag te hoog weergeven. Controleer het na een paar dagen, en opnieuw halverwege de maand, voordat je conclusies trekt. Als het hoger is dan je wilt, verlaag dan het maximaal aantal instanties in plaats van de drempel voor omhoog schalen te verhogen: de bovengrens is een harde limiet, een drempelwaarde is slechts een richtlijn.
Terugschalen naar het minimum stopt de meting. Als je auto-scaling volledig uitschakelt, blijft de app op het huidige aantal instanties staan, dus zet het eerst terug naar het minimum als kosten de reden zijn om het uit te schakelen.
Een App Veilig Schaalbaar Maken
De pagina bevat een waarschuwing, en het is het belangrijkste punt erop: je Node.js-app moet cluster-veilig zijn om netjes over instanties te kunnen schalen.
In de praktijk betekent dit:
Geen sessiegegevens in het geheugen. Als de sessie van een ingelogde gebruiker in het geheugen van één instantie leeft, wordt deze uitgelogd zodra een verzoek bij een andere instantie terechtkomt. Verplaats sessies naar een gedeelde opslag.
Geen geheugencache waar je voor correctheid op vertrouwt. Elke instantie heeft zijn eigen cache. Een cache die consistent moet zijn, moet gedeeld worden.
Geen schrijfacties naar het lokale bestandssysteem die je later terug verwacht te lezen. Uploads die door één instantie naar lokale schijf worden geschreven, zijn onzichtbaar voor de andere instanties. Schrijf naar gedeelde opslag.
Geen onbeveiligd geplande werk. Als een timer binnen de app draait, voert elke instantie deze uit, dus een nachtelijke taak op vier instanties draait vier keer. Verplaats geplande taken naar een cron-taak, of beveilig het met een lock. Zie Cron-taken.
Geen aanname dat het aantal instanties stabiel is. Alles dat werk verdeelt op basis van instantie-index, breekt zodra het aantal verandert.
Als iets hiervan op jouw app van toepassing is, los het dan op voordat je auto-scaling inschakelt. Een app die niet cluster-veilig is, faalt op manieren die onregelmatig en lastig te reproduceren zijn, omdat ze afhangen van welke instantie welk verzoek heeft afgehandeld.
Probleemoplossing
De schakelaar kan niet worden ingeschakeld. Inschakelen vereist schrijfrechten voor de site. Bij een alleen-lezen rol zijn de bedieningselementen uitgeschakeld.
De app herstartte toen ik auto-scaling inschakelde. Verwacht. Overschakelen naar clustermodus vereist een herstart, en dit gebeurt eenmalig.
Gebruikers worden willekeurig uitgelogd. Klassiek symptoom van een niet-cluster-veilige app. Sessies staan in het geheugen en verzoeken komen bij verschillende instanties terecht.
Instanties zijn opgeschaald en nooit meer teruggeschaald. Ofwel bleef de belasting boven de drempel voor omlaag schalen, ofwel houdt iets de CPU hoog onafhankelijk van verkeer. Bekijk de gebeurtenissenlijst en kijk wat de app daadwerkelijk doet.
Een geplande taak draaide meerdere keren. Elke instantie voerde hem uit. Verplaats hem naar een cron-taak of voeg een lock toe.
Er wordt niets geschaald. Controleer of de schakelaar aanstaat, de app draait, en clustermodus ingeschakeld is. Controleer vervolgens in de gebeurtenissenlijst of de CPU daadwerkelijk je drempel voor omhoog schalen heeft overschreden.
De kosten zijn hoger dan verwacht. Kijk in de gebeurtenissenlijst naar flapping, en verlaag vervolgens je maximaal aantal instanties.
Gerelateerde Pagina's
- Siteprestaties en APM om te zien of CPU daadwerkelijk het knelpunt is.
- Monitoring van Site-uptime om te bevestigen dat schaling de beschikbaarheid daadwerkelijk verbetert.
- Cron-taken voor geplande taken die precies één keer moeten draaien.
- Grootte van een Cloudserver Wijzigen als je een grotere machine nodig hebt in plaats van meer instanties.