Dela via


Konfigurera skalning

Konfigurera skalningsinställningar för att hantera prestanda och kostnader för din hanterade DevOps-pool. Information om priser och prestanda finns i Hantera kostnader och prestanda.

Agenttillstånd

Hanterade DevOps-pooler kan konfigureras som tillståndslösa eller tillståndskänsliga.

Standardinställningen för en hanterad DevOps-pool är tillståndslös (fresh agent varje gång) men i vissa fall kanske teamen vill återanvända agenter för att återanvända paketen eller filerna som skapades under den föregående pipelinekörningen. Skapa arbetsbelastning är ett vanligt scenario där team vill bevara tillstånds- och återanvändningsagenter. Du kan uppnå tillståndskänsliga pooler via Hanterade DevOps-pooler samtidigt som du balanserar dem med bästa praxis för säkerhet. Som standard kan en agent återanvändas i högst 7 dagar, men du kan konfigurera den så att den återanvänds tidigare.

Kommentar

Tillståndslösa pooler eller användning av agenttillståndsinställningen Fresh agent varje gång rekommenderas av säkerhetsexperter som skydd mot leveranskedjeattacker.

Tillståndslösa pooler

När en tillståndslös agent har konfigurerats anskaffas en ny agent för varje jobb och tas bort när jobbet har slutförts.

Skärmbild av en tillståndslös agent.

När agenttillståndet anges till Fresh agent varje gång, anskaffas en ny agent för varje jobb och tas bort när jobbet har slutförts.

Tillståndskänsliga pooler

Skärmbild av en tillståndskänslig agent.

När samma agent kan användas av flera versioner ("kind": "stateful" i resursmallar eller { "stateful": {...} } i Azure CLI) är aktiverad anses agenter i poolen vara tillståndskänsliga. Tillståndskänsliga pooler konfigureras med hjälp av följande inställningar.

  • Maximalt antal aktiva för standby-agenter (maxAgentLifetime) konfigurerar den maximala varaktighet som en agent i en tillståndskänslig pool kan köra innan den stängs av och ignoreras. Formatet för Max time to live för standby-agenter är dd.hh:mm:ss. Standardvärdet för Max time to live för väntelägesagenter är inställt på den maximala tillåtna varaktigheten på sju dagar (7.00:00:00).

  • Respitperiod (gracePeriodTimeSpan) konfigurerar hur lång tid en agent i en tillståndskänslig pool väntar på nya jobb innan den stängs av när alla aktuella och köade jobb har slutförts. Formatet för respitperiod är dd.hh:mm:ss och standardvärdet är ingen respitperiod.

Medan agenter i tillståndslösa pooler stängs av och ignoreras efter varje jobb, fortsätter agenter i tillståndskänsliga pooler att köras om något av följande villkor uppfylls.

  • Om det finns ett annat jobb i kö när det första jobbet slutförs skickar Hanterade DevOps-pooler jobbet till agenten som körde det första jobbet i stället för att stänga av det.
  • Om det finns en respitperiod som konfigurerats för poolen väntar agenter på nya jobb under den varaktighet som anges av respitperioden innan de stängs av.
  • Om standby-agenter är aktiverade och agentbilden uppfyller kriterierna för den aktiva etableringsperioden fortsätter agenten att köra och vänta på jobb.

Agenter som körs i tillståndskänsliga pooler stängs av och ignoreras om de körs kontinuerligt under den tid som anges av Max time to live för standby-agenter, även om de tidigare villkoren är sanna. Om maxtid för att leva för väntelägesagenter har konfigurerats i tre dagar och Läget För vänteläge är inställt på Manuell, Alla veckors schema (datorer som är tillgängliga dygnet innan), startas agenterna om efter tre kontinuerliga dagars drifttid.

Viktigt!

Agenter i tillståndskänsliga pooler kan fortfarande stängas av och ignoreras när ett jobb har slutförts om det inte finns någon respitperiod, ingen aktiv etableringsperiod för standby-agenter och inga köade jobb som matchar agenten. När en agent har ignorerats går alla tillstånd förlorade.

Respitperioden möjliggör det mest kostnadseffektiva sättet att köra tillståndskänsliga pooler för pipelines med konsekvent belastning och kräver inte användning av standby-agentläge för att hålla agenter online och redo att acceptera jobb.

Standby-agentläge

När du skapar en pool är standby-agentläget inaktiverat som standard och det finns inga standby-agenter att omedelbart tilldela till dina pipelines, som kan behöva vänta en stund, upp till 15 minuter, för att en agent ska etableras på begäran. För bättre prestanda aktiverar du standby-agentläge och konfigurerar ett väntelägesagentschema som ger kapacitet för din arbetsbelastning.

  • Av – Standby-agentläget är inaktiverat och agenter etableras på begäran när jobb placeras i kö.
  • Manuell – Konfigurera ett manuellt väntelägesschema.
  • Automatisk – Använd ett automatiskt väntelägesschema baserat på agentanvändningshistorik och kan konfigureras för kostnad och prestanda.

Skärmbild av valet av vänteläge för agentläge.

Manuell

Manuellt läge passar bäst för team som har kunskap om användningsmönstren för CI/CD-pipelines. Om du väljer det manuella alternativet måste du definiera ditt företableringsschema baserat på din förståelse av när agenter i poolen mest sannolikt kommer att användas och hur många agenter som sannolikt kommer att användas och ange ett etableringsantal agenter som uppfyller den beräknade efterfrågan.

Du kan skapa ett eget etableringsschema eller välja mellan något av de fördefinierade schemana, och du kan konfigurera tidszonen som ska användas för att ange scheman. Standardvärdet för Pre-provisioning TimeZone är (UTC) Coordinated Universal Time.The default value for Pre-provisioning TimeZone is (UTC) Coordinated Universal Time.

Dricks

Etableringsantalet i ett schema får inte vara större än de högsta agenter som konfigurerats i Poolinställningar.

Med några minuters mellanrum kontrollerar Hanterade DevOps-pooler antalet aktiva agenter som kör jobb och väntelägesagenter som väntar på jobb, för att säkerställa att etableringsantalet agenter som anges av det aktuella etableringsschemat är tillgängligt. Om det aktuella etableringsantalet är 10 och det finns fem agenter som kör jobb och två agenter i vänteläge startar Managed DevOps-pooler ytterligare tre standby-agenter för att öka det totala antalet agenter till 10.

Manuell konfiguration av standby-agenten kan konfigureras på något av följande tre sätt.

Var och en av snabbstarterna före etableringen har följande vanliga inställningar utöver de specifika inställningarna för den snabbstarten.

  • Med företablering av tidszon kan du konfigurera tidszonen för tiderna i ditt företableringsschema. Standardvärdet för Pre-provisioning TimeZone är (UTC) Coordinated Universal Time.The default value for Pre-provisioning TimeZone is (UTC) Coordinated Universal Time.
  • Standby-agentprocent konfigurerar procentandelen väntelägesagenter som du vill ha för varje avbildning. Du kan ange * för att se till att alla bilder etableras på samma sätt, eller så kan du ange ett heltal från 0 till 100 för att representera en procentandel. Om du anger en procentandel måste summan för alla bilder vara lika med 100. Om du har en enda bild anger du * eller 100. Standby-agentprocent konfigureras i avsnittet images när arm-mallar används. Mer information finns i Konfigurera avbildningar.

Skärmbild av manuellt vänteläge.

Börja från början

Om du väljer att börja från början kan du lägga till en lista över etableringsperioder som ska fungera som ditt etableringsschema. Varje etableringsperiod består av en startdag, slutdag, tidszon, starttid, sluttid och ett antal. Etableringsperioder kan inte överlappa varandra.

Property beskrivning
Flera dagar När du är markerad kan du konfigurera både en startdag och en slutdag för ditt etableringsschema.
Till nästa period När den är markerad körs etableringsperioden från starttiden till början av nästa etableringsperiod.
Startdag Dagen då etableringsperioden startar.
Slutdag Dagen då etableringsperioden slutar. Krävs om flera dagar är markerat.
Starttid Den tid som etableringsperioden startar.
Sluttid Den tid som etableringsperioden tar slut. Krävs såvida inte Till nästa period är markerad.
Antal Antalet standby-agenter som ska etableras. Det här talet måste vara större än noll och får inte vara större än värdet Maximalt antal agenter som konfigurerats i Poolinställningar.

När du har skapat en etableringsperiod kan du ta bort eller redigera perioden från listan Företableringsschema .

I följande exempel konfigureras ett manuellt schema med en agent etablerad på måndagsmorgnar från 12:00 till 05:00 EST.

Skärmbild av manuellt skalningsschema.

Veckodagsschema

Om du väljer veckodagsschemat kan du ange en starttid och sluttid där det angivna antalet standby-agenter ska vara i vänteläge varje veckodag.

Property beskrivning
Starttid Den tid som etableringsperioden startar.
Sluttid Den tid som etableringsperioden tar slut.
Antal etableringar Antalet standby-agenter som ska etableras. Det här talet måste vara större än noll och får inte vara större än värdet Maximalt antal agenter som konfigurerats i Poolinställningar.

I följande exempel konfigureras fyra agenter som ska användas under arbetstid med 0 agenter under icke-arbetstid och helger, med hjälp av Eastern Standard Time.

Skärmbild av veckodagsschemat.

Schema för hela veckan

Om du väljer schemat för hela veckan kan du ange ett antal agenter som du vill ha tillgängliga dygnet innan.

Skärmbild av schemat för hela veckan.

Automatisk

Om du inte känner till dina användningsmönster och vill förlita dig på automatisk prognostisering baserat på tidigare data väljer du Automatisk. Du kan balansera mellan kostnad och agentprestanda med hjälp av ett skjutreglage med följande fem alternativ. Hanterade DevOps-pooler kör en fråga under de senaste tre veckornas historiska data (om tillgängligt), organiserar köade sessioner i poolen i fem minuter och tilldelar den angivna percentilen (för att undvika toppar) till varje timme.

  • Mest kostnadseffektiva (MostCostEffective) – tionde percentilen
  • Mer kostnadseffektiv (MoreCostEffective) – 25:e percentilen
  • Balanserad (standard) (Balanced) – 50:e percentilen
  • Mer prestanda (MorePerformance) – 75:e percentilen
  • Bästa prestanda (BestPerformance) – 90:e percentilen

Skärmbild av inställningen för automatisk skalning.

Se även