Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services
Usługa Azure DevOps Services korzysta z wielu dzierżaw w celu zmniejszenia kosztów i zwiększenia wydajności. Ten projekt pozostawia użytkowników podatnych na problemy z wydajnością, a nawet awarie, gdy inni użytkownicy udostępnionych zasobów doświadczają wzrostu zużycia. Dlatego usługa Azure DevOps ogranicza zasoby, z których mogą korzystać osoby, oraz ilość żądań, które mogą wykonywać w przypadku określonych poleceń. Po przekroczeniu tych limitów przyszłe żądania mogą być opóźnione lub zablokowane.
Aby uzyskać więcej informacji, zobacz limity usługi Git i Najlepsze rozwiązania, aby uniknąć osiągnięcia limitów szybkości.
Globalny limit użycia
Usługa Azure DevOps ma obecnie globalny limit zużycia, który spowalnia żądania od poszczególnych użytkowników po przekroczeniu progu, gdy zasoby współdzielone są zagrożone przeciążeniem. Ten limit koncentruje się wyłącznie na unikaniu awarii, gdy udostępnione zasoby są bliskie przeciążenia. Użytkownicy indywidualni zazwyczaj otrzymują opóźnione żądania tylko wtedy, gdy wystąpi jedno z następujących zdarzeń:
- Jeden z ich udostępnionych zasobów jest zagrożony przeciążeniem
- Ich użycie osobiste przekracza 200 razy zużycie typowego użytkownika w ramach (przesuwanego) pięciominutowego okna
Ilość opóźnienia zależy od trwałego poziomu zużycia przez użytkownika. Opóźnienia wahają się od kilku milisekund na żądanie do 30 sekund. Po zużyciu do zera lub zasób nie jest już przytłoczony, opóźnienia zatrzymają się w ciągu pięciu minut. Jeśli zużycie pozostanie wysokie, opóźnienia mogą trwać w nieskończoność, aby chronić zasób.
Gdy żądanie użytkownika zostanie opóźnione o znaczną kwotę, użytkownik otrzyma wiadomość e-mail i baner ostrzegawczy w Internecie. W przypadku konta usługi kompilacji i innych bez adresu e-mail, członkowie grupy Administratorów Kolekcji Projektów otrzymują wiadomość e-mail. Aby uzyskać więcej informacji, zobacz Monitorowanie sposobu użycia.
Gdy żądania poszczególnych użytkowników zostaną zablokowane, odpowiedzi z kodem HTTP 429 (zbyt wiele żądań) są odbierane z komunikatem podobnym do następującego:
TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource <resource name> in namespace <namespace ID>.
Jednostki przepływności usługi Azure DevOps
Użytkownicy usługi Azure DevOps zużywają wiele udostępnionych zasobów, a użycie zależy od następujących czynników:
- Przekazywanie dużej liczby plików do kontroli wersji powoduje duże obciążenie baz danych i kont magazynowych.
- Złożone zapytania śledzenia elementów roboczych tworzą obciążenie bazy danych na podstawie liczby elementów roboczych, które przeszukują
- Buduje obciążenie dysku, pobierając pliki z kontroli wersji i generując dane wyjściowe dziennika.
- Wszystkie operacje zużywają procesor CPU i pamięć w różnych częściach usługi
Aby dostosować się do tego celu, użycie zasobów usługi Azure DevOps jest wyrażane w jednostkach abstrakcyjnych nazywanych jednostkami przepływności usługi Azure DevOps (TSTU). Jednostki TSTU ostatecznie zawierają mieszankę następujących elementów:
- Azure SQL Database DTUs jako miarę wykorzystania zasobów bazy danych
- Warstwa aplikacji i agent zadań — procesor, pamięć i wejście/wyjście jako miara użycia zasobów obliczeniowych
- Przepustowość usługi Azure Storage jako miara zużycia magazynu
Obecnie jednostki TSTU skupiają się głównie na jednostkach DTU z Azure SQL Database, ponieważ to właśnie bazy danych Azure SQL Database jako zasoby współdzielone są najczęściej przeciążane z powodu nadmiernego zużycia. Pojedynczy TSTU to przeciętne obciążenie, jakie spodziewamy się, że typowy użytkownik usługi Azure DevOps wygeneruje w ciągu każdych pięciu minut. Typowi użytkownicy generują również skoki obciążenia. Te skoki to zazwyczaj 10 TSTU lub mniej na pięć minut. Rzadziej skoki osiągają nawet 100 TSTU.
Globalny limit zużycia wynosi 200 jednostek TSTU w ciągu pięciominutowego, przesuwanego okna.
Zalecamy co najmniej odpowiadanie na nagłówek Retry-After
. Jeśli wykryjesz nagłówek Retry-After
w dowolnej odpowiedzi, poczekaj, aż jakiś czas minie, zanim wyślesz kolejne żądanie. Dzięki temu aplikacja kliencka ma mniej wymuszonych opóźnień. Pamiętaj, że odpowiedź to 200, więc nie trzeba stosować logiki ponawiania prób do żądania.
Jeśli to możliwe, zalecamy monitorowanie nagłówków X-RateLimit-Remaining
i X-RateLimit-Limit
. Pozwala to przybliżyć szybkość zbliżania się do progu opóźnienia. Klient może inteligentnie reagować i rozpowszechniać swoje żądania w czasie.
Uwaga
Tożsamości używane przez narzędzia i aplikacje do integracji z usługą Azure DevOps mogą czasami potrzebować wyższych limitów szybkości i użycia, przekraczających dozwolone limity konsumpcji. Możesz zwiększyć te limity, przypisując poziom dostępu Basic + Test Plans do odpowiednich tożsamości używanych przez twoją aplikację. Po spełnieniu zapotrzebowania na wyższe limity szybkości można przywrócić poprzedni poziom dostępu. Opłaty są naliczane za podstawowe i testowe plany poziomu dostępu tylko przez czas przypisany do tożsamości.
Tożsamości, którym już przypisano subskrypcję Visual Studio Enterprise, nie mogą uzyskać przypisanego poziomu dostępu podstawowego + Test Plans, dopóki nie zostanie usunięte ich przypisanie.
Rurociągi
Ograniczanie szybkości jest podobne dla usługi Azure Pipelines. Każdy potok jest traktowany jako jednostka indywidualna ze śledzonym użyciem zasobów. Nawet jeśli agenci kompilacji są samodzielnie hostowani, generują obciążenie w postaci klonowania i wysyłania dzienników.
Stosujemy limit 200 TSTU dla pojedynczego potoku w przesuwanym 5-minutowym przedziale czasowym. Ten limit jest taki sam jak globalny limit zużycia dla użytkowników. Jeśli potok zostanie opóźniony lub zablokowany przez ograniczenie szybkości, w dołączonych dziennikach pojawi się komunikat.
Doświadczenie klienta API
Gdy żądania są opóźnione lub blokowane, usługa Azure DevOps zwraca nagłówki odpowiedzi, aby ułatwić klientom interfejsu API reagowanie. Chociaż nie są w pełni ustandaryzowane, te nagłówki są ogólnie zgodne z innymi popularnymi usługami.
W poniższej tabeli wymieniono dostępne nagłówki i ich znaczenie.
Z wyjątkiem X-RateLimit-Delay
, wszystkie te nagłówki są wysyłane, zanim zaczną się opóźnienia żądań.
Ten projekt daje klientom możliwość aktywnego spowolnienia szybkości żądań.
nazwa nagłówka
Opis
Retry-After
Nagłówek określony w RFC 6585jest wysyłany, aby poinformować Cię, jak długo należy czekać, zanim wyślesz kolejne żądanie, aby znaleźć się poniżej progu wykrywania. Jednostki: sekundy.
X-RateLimit-Resource
Nagłówek niestandardowy wskazujący usługę i typ progu, który został osiągnięty. Typy progów i nazwy usług mogą się różnić w czasie i bez ostrzeżenia. Zalecamy wyświetlenie tego ciągu dla człowieka, ale nie poleganie na nim na obliczeniach.
X-RateLimit-Delay
Jak długo żądanie zostało opóźnione. Jednostki: sekundy z maksymalnie trzema miejscami dziesiętnymi (milisekundy).
X-RateLimit-Limit
Całkowita liczba jednostek TSTU dozwolonych przed nałożeniem opóźnień.
X-RateLimit-Remaining
Liczba pozostałych jednostek TSTU przed opóźnieniem. Jeśli żądania są już opóźnione lub zablokowane, jest to 0.
X-RateLimit-Reset
Czas, w którym wszystkie zużycie zasobów zostanie natychmiast zatrzymane, śledzone użycie powróci do 0 jednostek TSTU. Wyrażone w czasie epoki unix.
Śledzenie pracy, przetwarzanie i limity projektów
Usługa Azure DevOps nakłada limity dla liczby projektów, które można znaleźć w organizacji, oraz liczbę zespołów, które można mieć w każdym projekcie. Należy również pamiętać o limitach zadań, zapytań, zaległości, tablic, pulpitów i nie tylko. Aby uzyskać więcej informacji, zobacz Śledzenie pracy, proces i limity projektów.
Wiki
Oprócz zwykłych limitów repozytorium , witryny typu wiki zdefiniowane dla projektu są ograniczone do 25 MB na pojedynczy plik.
Połączenia usług
Nie ma żadnych limitów dla poszczególnych projektów dotyczących tworzenia połączeń usług. Mogą jednak istnieć limity, które są nakładane za pośrednictwem identyfikatora Entra firmy Microsoft. Aby uzyskać dodatkowe informacje, zapoznaj się z następującymi artykułami:
- Limity i ograniczenia usługi Microsoft Entra
- Limity, kwoty i ograniczenia subskrypcji i usług platformy Azure