Dela via


Skala sessionsvärdar med Hjälp av Azure Automation och Azure Logic Apps för Azure Virtual Desktop

Du kan minska den totala distributionskostnaden för Azure Virtual Desktop genom att skala dina virtuella datorer (VM). Det innebär att stänga av och frigöra virtuella sessionsvärddatorer under låg belastning och sedan aktivera dem igen och omplacera dem under hög belastning.

I den här artikeln får du lära dig mer om skalningsverktyget som skapats med Azure Automation-kontot och Azure Logic Apps som automatiskt skalar sessionsvärddatorer i din Azure Virtual Desktop-miljö. Information om hur du använder skalningsverktyget finns i Konfigurera skalning av sessionsvärdar med hjälp av Azure Automation och Azure Logic Apps.

Kommentar

Azure Virtual Desktops interna autoskalningslösning är allmänt tillgänglig för poolbaserade och personliga värdpooler och kommer automatiskt att skala in eller ut virtuella sessionsvärddatorer baserat på skalningsschemat. Vi rekommenderar att du använder autoskalning för enklare konfiguration. Mer information finns i Autoskala skalningsplaner.

Så här fungerar skalningsverktyget

Skalningsverktyget tillhandahåller ett lågkostnadsautomatiseringsalternativ för kunder som vill optimera sina kostnader för virtuella sessionsvärddatorer.

Du kan använda skalningsverktyget för att:

  • Schemalägg virtuella datorer för att starta och stoppa baserat på tider med hög belastning och låg belastning.
  • Skala ut virtuella datorer baserat på antalet sessioner per CPU-kärna.
  • Skala i virtuella datorer under lågtrafik, vilket gör att det minsta antalet virtuella sessionsvärddatorer körs.

Skalningsverktyget använder en kombination av ett Azure Automation-konto, en PowerShell-runbook, en webhook och en logikapp som ska fungera. När verktyget körs anropar Logikappen en webhook för att starta runbooken. Runbooken skapar sedan ett jobb.

Tider med hög och låg belastning definieras som:

  • Topp: Den tid då maximal samtidighet i användarsessionen förväntas uppnås.
  • Låg belastning: Den tid då minsta samtidighet i användarsessionen förväntas uppnås.

Under den högsta användningstiden kontrollerar jobbet det aktuella antalet sessioner och den virtuella datorns kapacitet för den aktuella sessionsvärden som körs för varje värdpool. Den använder den här informationen för att beräkna om de virtuella sessionsvärddatorer som körs kan stödja befintliga sessioner baserat på parametern SessionThresholdPerCPU som definierats för filen CreateOrUpdateAzLogicApp.ps1 . Om de virtuella sessionsvärddatorerna inte kan stödja befintliga sessioner startar jobbet extra virtuella sessionsvärddatorer i värdpoolen.

Kommentar

SessionThresholdPerCPU begränsar inte antalet sessioner på den virtuella datorn. Den här parametern avgör bara när nya virtuella datorer behöver startas för att belastningsutjämning av anslutningarna. För att begränsa antalet sessioner måste du följa anvisningarna för att konfigurera parametern MaxSessionLimit i enlighet med detta.

Under låg belastning avgör jobbet hur många virtuella sessionsvärddatorer som ska stängas av baserat på parametern MinimumNumberOfRDSH . Om du anger parametern LimitSecondsToForceLogOffUser till ett positivt värde som inte är noll, kommer jobbet att ställa in sessionsvärdens virtuella datorer i tömningsläge för att förhindra att nya sessioner ansluter till värdarna. Jobbet meddelar sedan alla inloggade användare att spara sitt arbete, vänta den konfigurerade tiden och sedan tvinga användarna att logga ut. När alla användarsessioner på den virtuella sessionsvärddatorn har loggats ut stängs den virtuella datorn av. När den virtuella datorn har stängts av återställs sessionsvärdens avrinningsläge.

Kommentar

Om du manuellt ställer in sessionsvärdens virtuella dator i tömningsläge hanterar jobbet inte den virtuella sessionsvärddatorn. Om den virtuella sessionsvärddatorn körs och är inställd på tömningsläge behandlas den som otillgänglig, vilket gör att jobbet startar ytterligare virtuella datorer för att hantera belastningen. Vi rekommenderar att du taggar alla virtuella Azure-datorer innan du manuellt ställer in dem på tömningsläge. Du kan namnge taggen med parametern MaintenanceTagName när du skapar Azure Logic App Scheduler senare. Taggar hjälper dig att skilja dessa virtuella datorer från de som skalningsverktyget hanterar. Om du anger underhållstaggen förhindrar du också att skalningsverktyget gör ändringar i den virtuella datorn tills du tar bort taggen.

Om du anger parametern LimitSecondsToForceLogOffUser till noll tillåter jobbet sessionskonfigurationsinställningen i angivna grupprinciper att hantera signering av användarsessioner. Om du vill se dessa grupprinciper går du till Datorkonfigurationsprinciper>>Administrativa mallar Windows-komponenter>Fjärrskrivbordstjänster>Fjärrskrivbord>Sessionsvärd>Sessionstidsgränser. Om det finns aktiva sessioner på en virtuell sessionsvärd lämnar jobbet sessionsvärdens virtuella dator igång. Om det inte finns några aktiva sessioner kommer jobbet att stänga av den virtuella sessionsvärdens virtuella dator.

När som helst tar jobbet även hänsyn till värdpoolens MaxSessionLimit för att avgöra om det aktuella antalet sessioner är mer än 90 % av den maximala kapaciteten. I så fall startar jobbet extra virtuella sessionsvärddatorer.

Jobbet körs regelbundet baserat på ett angivet upprepningsintervall. Du kan ändra det här intervallet baserat på storleken på din Azure Virtual Desktop-miljö, men kom ihåg att det kan ta lite tid att starta och stänga av virtuella datorer, så kom ihåg att ta hänsyn till fördröjningen. Vi rekommenderar att du ställer in upprepningsintervallet var 15:e minut.

Verktyget har dock också följande begränsningar:

  • Den här lösningen gäller endast poolade virtuella värddatorer för flera sessioner.
  • Den här lösningen hanterar virtuella datorer i valfri region, men kan bara användas i samma prenumeration som ditt Azure Automation-konto och Azure Logic App.
  • Den maximala körningen av ett jobb i runbooken är 3 timmar. Om det tar längre tid än så att starta eller stoppa de virtuella datorerna i värdpoolen misslyckas jobbet. Mer information finns i Delade resurser.
  • Minst en virtuell dator eller sessionsvärd måste aktiveras för att skalningsalgoritmen ska fungera korrekt.
  • Skalningsverktyget stöder inte skalning baserat på CPU eller minne.
  • Skalning fungerar bara med befintliga värdar i värdpoolen. Skalningsverktyget stöder inte skalning av nya sessionsvärdar.

Kommentar

Skalningsverktyget styr belastningsutjämningsläget för den värdpool som den för närvarande skalar. Verktyget använder det första belastningsutjämningsläget för både hög- och lågtrafiktimmar.

Nästa steg