Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps-tjänster
Azure DevOps Services använder flera innehavare för att minska kostnaderna och förbättra prestandan. Den här designen kan orsaka prestandaproblem eller avbrott när andra användare av delade resurser har toppar i förbrukningen. För att förhindra detta begränsar Azure DevOps de resurser som varje användare kan använda och antalet begäranden som de kan göra till vissa kommandon. Om du överskrider dessa gränser kan framtida begäranden fördröjas eller blockeras.
Läs mer i Git-gränser och metodtips för att undvika att nå hastighetsgränser.
Global förbrukningsgräns
Azure DevOps har en global förbrukningsgräns som fördröjer begäranden från enskilda användare när delade resurser riskerar att överbelastas. Den här gränsen hjälper till att undvika avbrott när delade resurser är nära att överbelastas. Enskilda användare drabbas vanligtvis bara av fördröjda begäranden när någon av följande incidenter inträffar:
- En av deras delade resurser riskerar att bli överbelastad.
- Deras personliga användning överskrider 200 gånger förbrukningen för en typisk användare inom ett glidande femminutersfönster.
Fördröjningen beror på användarens varaktiga förbrukningsnivå. Fördröjningar varierar från några millisekunder per begäran upp till 30 sekunder. När förbrukningen sjunker till noll eller resursen inte överbelastas stoppas fördröjningarna inom fem minuter. Om förbrukningen förblir hög kan fördröjningar fortsätta på obestämd tid för att skydda resursen.
När en användarbegäran fördröjs avsevärt får användaren ett e-postmeddelande och en varning på webbplatsen. För byggtjänstkontot och andra utan e-postadress får medlemmar i gruppen Administratörer för projektsamling e-postmeddelandet. Mer information finns i Användningsövervakning.
När en enskild användares begäranden blockeras får användaren svar med HTTP-kod 429 (för många begäranden) och ett meddelande som liknar följande:
TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource <resource name> in namespace <namespace ID>.
Azure DevOps-dataflödesenheter
Azure DevOps-användare förbrukar många delade resurser och förbrukningsnivån beror på faktorer som:
- Laddar upp ett stort antal filer till versionskontrollen, vilket innebär att databaser och lagringstjänster belastas.
- Köra komplexa frågor för arbetsobjekt, vilket ökar databasbelastningen baserat på antalet arbetsobjekt som genomsöks.
- Kör byggen som laddar ned filer från versionskontroll och producerar loggutdata.
- Allmänna åtgärder som förbrukar cpu och minne i olika delar av tjänsten.
För att mäta den här aktiviteten uttrycker Azure DevOps resursförbrukning i Azure DevOps-dataflödesenheter (TSTU:er). En TSTU är en abstrakt belastningsenhet som representerar en blandning av olika resurser, inklusive:
- Databasanvändning – mäts främst via Azure SQL Database DTU:er.
- Beräkningsanvändning – PROCESSOR, minne och I/O från programnivåer och jobbagenter.
- Lagringsanvändning – Azure Storage-bandbredd.
Anmärkning
TSTU:er är avsiktligt abstrakta. De sammanställer resursförbrukning mellan beräknings-, lagrings- och databaslager i en distribuerad infrastruktur. De underliggande måtten (CPU, minne, I/O, DTU:er) exponeras inte direkt eller är meningsfulla på egen hand. TSTU:er ger ett enhetligt sätt att representera belastningen, vilket gör det enklare att hantera och övervaka användningen utan att exponera hela komplexiteten för enskilda resurskomponenter. Du kan inte beräkna användningen i TSTU:er för en åtgärd med en formel, men du kan se hur många TSTU:er en åtgärd förbrukar på sidan för användningsövervakning . Vissa åtgärder, till exempel frågor om arbetsobjekt, varierar i förbrukning allt eftersom din organisation växer och ändras, så du kan behöva jämföra regelbundet för att hålla dig korrekt.
För närvarande fokuserar TSTU:er främst på Azure SQL Database DTU:er eftersom databaser är den delade resurs som mest sannolikt överbelastas av överdriven förbrukning.
- En TSTU representerar den genomsnittliga belastningen som genereras av en typisk Azure DevOps-användare under fem minuter.
- Normal användaraktivitet kan generera toppar på 10 TSTU:er eller färre per fem minuter.
- Större men mindre frekventa toppar kan nå upp till 100 TSTU:er.
- Den globala gränsen är 200 TSTU inom ett glidande tidsfönster på fem minuter.
Metodtips
- Respektera Retry-After-huvudet: Om du får det i ett svar väntar du den angivna tiden innan du skickar en annan begäran. Svaret returnerar fortfarande HTTP 200, så omförsökslogik krävs inte.
- Övervaka X-RateLimit-huvuden: Om det är tillgängligt kan du spåra
X-RateLimit-RemainingochX-RateLimit-Limituppskatta hur snabbt du närmar dig tröskelvärdet. På så sätt kan klienten jämna ut begärandetoppar och undvika framtvingade fördröjningar.
Anmärkning
Identiteter som används av verktyg och program för att integrera med Azure DevOps kan ibland behöva högre hastighets- och användningsgränser utöver den tillåtna förbrukningsgränsen. Öka dessa gränser genom att tilldela åtkomstnivån Grundläggande + Testplaner till de identiteter som programmet använder. När du inte längre behöver högre hastighetsgränser återgår du till den tidigare åtkomstnivån. Du debiteras endast för åtkomstnivån Grundläggande + Testplaner under den tid som tilldelats identiteten. Identiteter som redan har tilldelats en Visual Studio Enterprise-prenumeration kan inte tilldelas åtkomstnivån Grundläggande + Testplaner förrän du tar bort prenumerationen.
Rörledningar
Hastighetsbegränsning fungerar på samma sätt för Azure Pipelines. Varje pipeline är en enskild entitet och dess resursförbrukning spåras separat. Även om byggagenter är lokalt installerade genererar de belastning genom att klona och skicka loggar.
Det finns en TSTU-gräns på 200 för varje pipeline i ett glidande 5-minutersfönster. Den här gränsen matchar den globala förbrukningsgränsen för användare. Om hastighetsbegränsning fördröjer eller blockerar en pipeline visas ett meddelande i de bifogade loggarna.
API-klientupplevelse
När begäranden fördröjs eller blockeras returnerar Azure DevOps svarshuvuden för att hjälpa API-klienter att reagera. Även om de inte är helt standardiserade är dessa rubriker i stort sett i linje med andra populära tjänster.
I följande tabell visas tillgängliga rubriker och vad de betyder.
Förutom X-RateLimit-Delay skickas alla dessa headers innan begäranden börjar bli försenade.
Med den här designen kan klienterna proaktivt sakta ned antalet begäranden.
rubriknamn
Beskrivning
Retry-After
Den RFC 6585-angivna rubriken skickas för att informera dig om hur lång tid du ska vänta innan du skickar nästa begäran för att hamna under detekteringströskelvärdet. Enheter: sekunder.
X-RateLimit-Resource
En anpassad rubrik som anger den tjänst och typ av tröskelvärde som uppnåddes. Tröskelvärdestyper och tjänstnamn kan variera över tid och utan varning. Vi rekommenderar att du visar den här strängen för en människa, men inte förlita sig på den för beräkningar.
X-RateLimit-Delay
Hur länge begäran fördröjs. Enheter: sekunder med upp till tre decimaler (millisekunder).
X-RateLimit-Limit
Totalt antal TSTU som tillåts innan fördröjningar införs.
X-RateLimit-Remaining
Antal TSTU:er som återstår innan fördröjningar startar. Om begäranden redan är försenade eller blockerade är det 0.
X-RateLimit-Reset
Tid då, om all resursförbrukning stoppas omedelbart, spårad användning återgår till 0 TSTU:er. Uttryckt i Unix epoktid.
Arbetsspårning, process- och projektgränser
Azure DevOps begränsar antalet projekt som du kan ha i en organisation och antalet team som du kan ha i varje projekt. Det finns också begränsningar för arbetsobjekt, frågor, kvarvarande uppgifter, tavlor, instrumentpaneler med mera. Mer information finns i Arbetsspårning, process- och projektgränser.
Wiki
Förutom de vanliga lagringsplatsens gränser kan en wiki-fil i ett projekt vara upp till 25 MB.
Tjänstanslutningar
Det finns inga gränser per projekt för att skapa tjänstanslutningar. Begränsningar kan dock införas via Microsoft Entra-ID. Mer information finns i följande artiklar:
- Begränsningar och begränsningar för Microsoft Entra-tjänsten
- Azure-prenumeration och tjänstbegränsningar, kvoter och begränsningar