Utforska metodtips för autoskalning

Slutförd

Om du inte följer god praxis när du skapar autoskalningsinställningar kan du skapa villkor som leder till oönskade resultat. I den här lektionen får du lära dig hur du undviker att skapa regler som är i konflikt med varandra.

Autoskalningsbegrepp

  • En autoskalningsinställning skalar instanser vågrätt, vilket är ute genom att öka instanserna och in genom att minska antalet instanser. En autoskalningsinställning har ett högsta, lägsta och standardvärde för instanser.

  • Ett autoskalningsjobb läser alltid det associerade mått som ska skalas efter och kontrollerar om det har överskridits det konfigurerade tröskelvärdet för utskalning eller inskalning.

  • Alla tröskelvärden beräknas på instansnivå. "Skala ut med en instans när genomsnittlig CPU > 80 % när antalet instanser är 2" innebär till exempel att skala ut när den genomsnittliga processorn för alla instanser är större än 80 %.

  • Alla autoskalningsframgångar och fel loggas i aktivitetsloggen. Du kan sedan konfigurera en aktivitetsloggavisering så att du kan meddelas via e-post, SMS eller webhooks när det finns aktivitet.

Metodtips för autoskalning

Använd följande metodtips när du skapar dina regler för autoskalning.

Se till att de högsta och lägsta värdena är olika och har lämplig marginal mellan sig

Om du har en inställning som har minimum=två, maximum=två och det aktuella instansantalet är två, kan ingen skalningsåtgärd utföras. Ha en lämplig marginal mellan högsta och lägsta antal instanser, som ingår. Autoskalning skalar alltid mellan dessa gränser.

Välj lämplig statistik för ditt diagnostikmått

För diagnostikmått kan du välja mellan Genomsnitt, Minimum, Maximum och Total som ett mått att skala efter. Den vanligaste statistiken är Genomsnitt.

Välj tröskelvärden noga för alla måttyper

Vi rekommenderar att du noggrant väljer olika tröskelvärden för utskalning och inskalning baserat på praktiska situationer.

Vi rekommenderar inte autoskalningsinställningar som i följande exempel med samma eller liknande tröskelvärden för ut- och under förhållanden:

  • Öka antalet instanser med ett antal när antal trådar >= 600
  • Minska antalet instanser med ett antal när antal trådar <= 600

Låt oss titta på ett exempel på vad som kan leda till ett beteende som kan verka förvirrande. Tänk på följande sekvens.

  1. Anta att det finns två instanser att börja med och att det genomsnittliga antalet trådar per instans växer till 625.
  2. Autoskalning skalas ut genom att lägga till en tredje instans.
  3. Anta sedan att det genomsnittliga antalet trådar mellan instanser sjunker till 575.
  4. Innan du skalar in försöker autoskalning att uppskatta vilket slutligt tillstånd det kommer att bli om det skalas in. Till exempel 575 x 3 (aktuellt instansantal) = 1 725 /2 (slutligt antal instanser vid inskalning) = 862,5 trådar. Det innebär att autoskalning måste skalas ut omedelbart igen även efter att den har skalats in, om det genomsnittliga antalet trådar förblir detsamma eller till och med bara faller en liten mängd. Men om den skalades ut igen skulle hela processen upprepas, vilket leder till en oändlig loop.
  5. För att undvika den här situationen (kallas "flaxning" skalas autoskalningen inte in alls. I stället hoppar den över och omvärderar villkoret igen nästa gång tjänstens jobb körs. Detta kan förvirra många eftersom autoskalning inte verkar fungera när det genomsnittliga antalet trådar var 575.

Uppskattning under en inskalning är avsedd att undvika "flaxande" situationer, där in- och utskalningsåtgärder kontinuerligt går fram och tillbaka. Tänk på det här beteendet när du väljer samma tröskelvärden för utskalning och in.

Vi rekommenderar att du väljer en lämplig marginal mellan utskalning och tröskelvärden. Tänk till exempel på följande kombination av bättre regler.

  • Öka antalet instanser med 1 när CPU% >= 80
  • Minska antalet instanser med 1 när CPU% <= 60

I det här fallet

  1. Anta att det finns två instanser att börja med.
  2. Om den genomsnittliga CPU-procenten för instanser går till 80 skalar autoskalningen ut genom att lägga till en tredje instans.
  3. Anta nu att processorprocenten med tiden sjunker till 60.
  4. Autoskalningens inskalningsregel beräknar det slutliga tillståndet om den skulle skalas in. Till exempel 60 x 3 (aktuellt instansantal) = 180/2 (slutligt antal instanser vid inskalning) = 90. Autoskalning skalas därför inte in eftersom den måste skalas ut igen omedelbart. I stället hoppar den över att skala in.
  5. Nästa gång autoskalning kontrolleras fortsätter processorn att falla till 50. Den beräknar igen – 50 x 3 instans = 150/2 instanser = 75, vilket är under utskalningströskeln på 80, så att den skalas in till 2 instanser.

Att tänka på vid skalning när flera regler har konfigurerats i en profil

Det finns fall där du kan behöva ange flera regler i en profil. Följande uppsättning autoskalningsregler används av tjänster när flera regler anges.

Vid utskalning körs autoskalning om någon regel uppfylls. Vid inskalning kräver autoskalning att alla regler uppfylls.

Anta att du har följande fyra regler för autoskalning för att illustrera:

  • Om processorn < är 30 % skalar du in med 1
  • Om minnet < är 50 %, skalar du in med 1
  • Om CPU > 75 %, skala ut med 1
  • Om minnet > är 75 % skalar du ut med 1

Sedan inträffar följande:

  • Om processorn är 76 % och minnet är 50 % skalar vi ut.
  • Om processorn är 50 % och minnet är 76 % skalar vi ut.

Om processorn å andra sidan är 25 % och minnet är 51 % autoskalning skalas inte in. En automatisk inskalning skulle inträffa om processorn är 29 % och minnet är 49 % eftersom båda inskalningsreglerna skulle vara sanna.

Välj alltid ett säkert standardantal instanser

Standardantalet för instanser är viktigt eftersom autoskalning skalar tjänsten till det antalet när mått inte är tillgängliga. Välj därför ett standardantal instanser som är säkra för dina arbetsbelastningar.

Konfigurera aviseringar för autoskalning

Autoskalning av inlägg i aktivitetsloggen om något av följande villkor inträffar:

  • Autoskalning utfärdar en skalningsåtgärd
  • Autoskalningstjänsten slutför en skalningsåtgärd
  • Autoskalningstjänsten kan inte utföra en skalningsåtgärd.
  • Mått är inte tillgängliga för autoskalningstjänsten för att fatta ett skalningsbeslut.
  • Mått är tillgängliga (återställning) igen för att fatta ett skalningsbeslut.

Du kan också använda en aktivitetsloggavisering för att övervaka hälsotillståndet för autoskalningsmotorn. Förutom att använda aktivitetsloggaviseringar kan du även konfigurera e-post- eller webhook-meddelanden för att få meddelanden om lyckade skalningsåtgärder via fliken Meddelanden i autoskalningsinställningen.