Konfigurera en VM-skalningsuppsättning
När du skalar lägger du till instanser i vm-skalningsuppsättningen. I scenariot med leveransföretaget är skalning ett bra sätt att hantera det förändrade antalet begäranden över tid. Skalning justerar antalet virtuella datorer som kör webbprogrammet när antalet användare ändras. På så sätt hålls svarstiden i systemet relativt jämn oavsett belastning.
I den här lektionen får du lära dig hur du skalar en VM-skalningsuppsättning. Du kan skala manuellt genom att uttryckligen ange antalet instanser av virtuella datorer i skalningsuppsättningen. Du kan konfigurera automatisk skalning genom att definiera skalningsregler som utlöser allokering och frigöring av virtuella datorer. De här skalningsreglerna avgör när systemet ska skalas om genom att olika prestandamått övervakas.
Skala vm-skalningsuppsättningar manuellt
Du skalar en VM-skalningsuppsättning manuellt genom att öka eller minska antalet instanser. Du gör den här uppgiften programmatiskt eller i Azure-portalen.
Följande kod använder Azure CLI för att ändra antalet instanser i en VM-skalningsuppsättning:
az vmss scale \
--name webServerScaleSet \
--resource-group MyResourceGroup \
--new-capacity 6
Autoskalning av vm-skalningsuppsättningar
Manuell skalning kan vara användbart i en del fall. I många situationer är det däremot bättre med automatisk skalning. Med automatisk skalning styr systemet antalet instanser i skalningsuppsättningen.
Du kan basera autoskalningen på:
- Schema: Använd den här metoden om du vet att du har en ökad arbetsbelastning på ett angivet datum eller en angiven tidsperiod.
- Mått: Justera skalning genom att övervaka prestandamått som är associerade med skalningsuppsättningen. När de här måtten överskrider ett angivet tröskelvärde startar kan skalningsuppsättningen automatiskt starta nya instanser av virtuella datorer. När måtten anger att de extra resurserna inte längre krävs kan skalningsuppsättningen stoppa eventuella överflödiga instanser.
Definiera villkor, regler och gränser för autoskalning
Automatisk skalning baseras på en uppsättning skalningsvillkor, -regler och -begränsningar. Ett skalningsvillkor kombinerar tid och en uppsättning skalningsregler. Om den aktuella tiden infaller inom den period som definieras i skalningsvillkoret utvärderas villkorets skalningsregler. Resultatet av den här utvärderingen avgör om instanser ska läggas till eller tas bort i skalningsuppsättningen. Skalningsvillkoret innehåller också gränserna för högsta och lägsta antal instanser i skalningsuppsättningen.
I scenariot med leveransföretaget kan du lägga till skalningsregler som övervakar CPU-användningen i skalningsuppsättningen. Om processoranvändningen överskrider tröskelvärdet på 75 procent kan skalningsregeln öka antalet instanser av virtuella datorer. En andra skalningsregel kan också övervaka CPU-användning, men minska antalet virtuella datorinstanser när användningen understiger 50 procent. Eftersom appen är global ska de här reglerna vara aktiva hela tiden snarare än under specifika tidsperioder.
En VM-skalningsuppsättning kan innehålla många skalningsvillkor. Varje matchande skalningsvillkor åtgärdas. En skalningsuppsättning kan också innehålla ett standardskalningsvillkor som ska användas om inga andra skalningsvillkor matchar aktuell tid och prestandamått. Standardskalningsvillkoret är alltid aktivt. Den innehåller inga skalningsregler, vilket i praktiken fungerar som ett nullskalningsvillkor som inte skalas in eller ut. Du kan dock ändra standardskalningsvillkoret för att ange ett standardantal för instanser, eller så kan du lägga till ett par skalningsregler som skalar ut och in igen.
Använda schemabaserad autoskalning
Schemabaserad skalning anger en start- och sluttid och antalet instanser som ska läggas till i skalningsuppsättningen. Följande skärmbild visar ett exempel i Azure-portalen. Antalet instanser skalas ut till 20 mellan 06 och 18 varje måndag och onsdag. Om det inte finns några andra skalningsvillkor används standardskalningsvillkoret utanför de tiderna.
I det här fallet skalar standardregeln tillbaka systemet till två instanser. Det här värdet är maxvärdet i standardskalningsvillkoret.
Använda måttbaserad autoskalning
Med en måttbaserad skalningsregel anger du vilka resurser som ska övervakas, till exempel processoranvändning eller svarstider. Den här skalningsregeln lägger till eller tar bort instanser från skalningsuppsättningen enligt måttens värden. Du kan ange gränser för antalet instanser för att förhindra att en skalningsuppsättning skalar in eller ut för mycket.
I exemplet vill du öka antalet instanser med en när den genomsnittliga processoranvändningen överskrider 75 procent. Dessutom vill du begränsa utskalningen till 50 instanser. Den här gränsen kan förhindra att utskalningen skenar vid en eventuell attack. På samma sätt vill du skala in när den genomsnittliga processoranvändningen sjunker under 50 procent.
Dessa mått används ofta för att övervaka en VM-skalningsuppsättning:
- Procent cpu: Det här måttet anger CPU-användningen för alla instanser. Ett högt värde anger att instanserna håller på att bli begränsade av sina processorer, vilket kan orsaka fördröjningar i bearbetningen av förfrågningar från klienterna.
- Inkommande flöden och utgående flöden: Dessa mått visar hur snabbt nätverkstrafiken flödar till och från virtuella datorer i skalningsuppsättningen.
- Läsåtgärder för diskar per sekund och diskskrivningsåtgärder per sekund: Dessa mått visar volymen av disk-I/O i hela skalningsuppsättningen.
- Djup för datadiskkö: Det här måttet visar hur många I/O-begäranden som endast ska användas på datadiskarna på de virtuella datorerna.
Skalningsregeler aggregerar de värden som hämtas för ett mått över samtliga instanser. Värdena aggregeras över en period som kallas för ett tidsintervall. Varje mått har ett eget tidsintervall, men i de flesta fall är intervallet en minut. Det aggregerade värdet kallas för tidsmängden. Tidsmängsalternativen är genomsnitt, minimum, maximum, totalt, senaste och antal.
Ett intervall på en minut räcker inte för att fastställa om en måttförändring är långvarig nog att göra autoskalning lönsamt. Därför används ett andra steg i skalningsregler där tidsmängden aggregeras över en längre tidsperiod som användaren anger. Den här perioden kallas för varaktigheten. Den minsta varaktigheten är fem minuter. Om varaktigheten till exempel sätts till 10 minuter så aggregerar skalningsregeln 10 värden som beräknas för tidsintervallet.
Varaktighetens aggregerings kan skilja sig från tidsintervallets aggregering. Anta till exempel att tidsmängden är genomsnitt och att statistiken som samlas in är processorprocentandel för ett tidsintervall på en minut. För varje minut beräknas den genomsnittliga processorprocentanvändningen för alla instanser under den minuten. Om statistiken för tidsintervallet är inställd på maximum och regelns varaktighet är 10 minuter används det högsta av de 10 genomsnittliga värdena för processorprocentandelen till att avgöra om regelns tröskelvärde har överskridits.
När en skalningsregel identifierar att ett mått överskrider ett tröskelvärde kan det utföra en skalningsåtgärd. En skalningsåtgärd kan vara utskalning eller inskalning. En utskalningsåtgärd ökar antalet instanser. En inskalningsåtgärd minskar antalet instanser.
I skalningsåtgärder används en operator som mindre än, större än eller lika med till att avgöra hur åtgärden ska reagera på tröskelvärdet. Utskalningsåtgärder använder vanligtvis operatorn större än för att jämföra måttvärdet med tröskelvärdet. I inskalningsåtgärder jämförs måttvärdet med tröskelvärdet vanligtvis med operatorn mindre än. Skalningsåtgärder anger även instansantalet till en viss nivå snarare än att öka eller minska antalet tillgängliga instanser.
Skalningsåtgärder har en nedkylningstid som anges i minuter. Under den här perioden kan inte skalningsregeln utlösas igen. Nedkylningstiden gör att systemet kan stabiliseras mellan olika skalningshändelser. Det tar tid att starta och stänga av instanser, så du kanske inte ser några större ändringar i måtten på flera minuter. Den kortaste nedkylningsperioden är fem minuter.
Slutligen bör du planera för en inskalning när en arbetsbelastning minskar. Överväg att definiera skalningsregler i par i samma skalningsvillkor. En skalningsregel bör indikera hur systemet ska skalas upp när ett mått överskrider ett övre tröskelvärde. Den andra regeln bör definiera hur systemet ska skalas tillbaka igen när samma mått understiger ett nedre tröskelvärde. Använd inte samma tröskelvärde i reglerna. Annars kan du utlösa en serie oscillerande händelser som skalar ut och in igen.
I bilden nedan ser du en skalningsregel som definierats på Azure-portalen.