Hız ve kullanım sınırları
Azure DevOps Services
Azure DevOps Services, maliyetleri azaltmak ve performansı geliştirmek için çok kiracılı hizmet kullanır. Bu tasarım, diğer paylaşılan kaynak kullanıcılarının tüketiminde ani artışlar olduğunda kullanıcıları performans sorunlarına ve hatta kesintilere karşı savunmasız bırakır. Bu nedenle Azure DevOps, kişilerin kullanabileceği kaynakları ve belirli komutlara yapabilecekleri istek miktarını sınırlar. Bu sınırlar aşıldığında, gelecekteki istekler gecikebilir veya engellenebilir.
Daha fazla bilgi için bkz. Git sınırları ve Hız sınırlarına çarpmamak için en iyi yöntemler.
Genel tüketim sınırı
Azure DevOps şu anda genel tüketim sınırına sahiptir ve paylaşılan kaynaklar aşırı yüklenme tehlikesiyle karşı karşıyayken tek tek kullanıcılardan gelen istekleri bir eşiğin ötesinde geciktirir. Bu sınır yalnızca paylaşılan kaynaklar aşırı yüklenmeye yaklaştığında kesintileri önlemeye odaklanmıştır. Bireysel kullanıcılar genellikle yalnızca aşağıdaki olaylardan biri gerçekleştiğinde gecikmeli istekler alır:
- Paylaşılan kaynaklarından biri bunalma riski altında
- Kişisel kullanımı, beş dakikalık bir süre içinde (kayan) tipik bir kullanıcının tüketiminin 200 katını aşıyor
Gecikme süresi, kullanıcının sürekli tüketim düzeyine bağlıdır. Gecikmeler istek başına birkaç milisaniyeden 30 saniyeye kadar değişir. Tüketim sıfıra ulaştığında veya kaynak artık bunalmaya başladığında, gecikmeler beş dakika içinde durur. Tüketim yüksek kalırsa kaynağı korumak için gecikmeler süresiz olarak devam edebilir.
Bir kullanıcı isteği önemli miktarda geciktirildiğinde, bu kullanıcı web'de bir e-posta ve uyarı başlığı alır. Derleme hizmeti hesabı ve e-posta adresi olmayan diğer kullanıcılar için Project Collection Yönetici istrators grubunun üyeleri e-postayı alır. Daha fazla bilgi için bkz. Kullanım izleme.
Tek bir kullanıcının istekleri engellendiğinde, HTTP kodu 429 (çok fazla istek) içeren yanıtlar alınır ve aşağıdaki iletiye benzer bir ileti görüntülenir:
TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource <resource name> in namespace <namespace ID>.
Azure DevOps aktarım hızı birimleri (TSTU)
Azure DevOps kullanıcıları birçok paylaşılan kaynak kullanır ve tüketim aşağıdaki faktörlere bağlıdır:
- Sürüm denetimine çok sayıda dosya yüklemek veritabanlarında ve depolama hesaplarında büyük miktarda yük oluşturur
- Karmaşık iş öğesi izleme sorguları, aradıkları iş öğelerinin sayısına göre veritabanı yükü oluşturur
- Sürüm denetiminden dosya indirerek günlük çıkışı oluşturarak sürücü yükünü oluşturur
- Tüm işlemler, hizmetin çeşitli bölümlerinde CPU ve bellek kullanır
Azure DevOps kaynak tüketimini karşılamak için Azure DevOps aktarım hızı birimleri veya TSTU'lar olarak adlandırılan soyut birimlerle ifade edilir. TSTU'lar sonunda aşağıdaki öğelerin bir karışımını içerir:
- Veritabanı tüketiminin ölçüsü olarak DTU'ları Azure SQL Veritabanı
- İşlem tüketiminin bir ölçüsü olarak uygulama katmanı ve iş aracısı CPU, bellek ve G/Ç
- Depolama tüketimi ölçüsü olarak Azure Depolama bant genişliği
Şu anda TSTU'lar öncelikli olarak Azure SQL Veritabanı DTU'lara odaklanmıştır çünkü Azure SQL Veritabanı en yaygın olarak aşırı tüketimden bunalan paylaşılan kaynaklardır. Tek bir TSTU, Azure DevOps'un tek bir normal kullanıcısının beş dakikada bir oluşturmasını beklediğimiz ortalama yükdür. Normal kullanıcılar da yükte ani artışlar oluşturur. Bu ani artışlar genellikle beş dakikada bir 10 veya daha az TSTU'dur. Ani artışlar daha az sıklıkta 100 TSTU'ya kadar yükselmektedir.
Küresel tüketim sınırı, kayan beş dakikalık bir süre içinde 200 TSTU'dur.
En azından üst bilgiyi yanıtlamanızı Retry-After
öneririz. Herhangi bir yanıtta üst bilgi algılarsanız, başka bir Retry-After
istek göndermeden önce bir süre geçene kadar bekleyin. Bunun yapılması, istemci uygulamanızın daha az zorlanmış gecikme yaşamasına yardımcı olur. Yanıtın 200 olduğunu unutmayın, bu nedenle isteğe yeniden deneme mantığı uygulamanız gerekmez.
Mümkünse, ve X-RateLimit-Limit
üst bilgilerini izlemenizi X-RateLimit-Remaining
öneririz. Bunu yaparak gecikme eşiğine ne kadar hızlı yaklaştığınızı yaklaşık olarak ayarlayabilirsiniz. Müşteriniz isteklerine akıllı bir şekilde yanıt verebilir ve istekleri zaman içinde dağıtabilir.
Dekont
Azure DevOps ile tümleştirmek için araçlar ve uygulamalar tarafından kullanılan kimlikler, zaman zaman izin verilen tüketim sınırının ötesinde daha yüksek hız ve kullanım sınırlarına ihtiyaç duyabilir. Temel + Test Planları erişim düzeyini uygulamanız tarafından kullanılan istenen kimliklere atayarak ek hız ve kullanım sınırları elde edebilirsiniz. Daha yüksek hız sınırları gereksinimi karşılandıktan sonra, kimliğin sahip olduğu erişim düzeyine geri dönebilirsiniz. Temel + Test Planları erişim düzeyinin maliyeti yalnızca kimliğe atandığı süre için ücretlendirilirsiniz.
Visual Studio Enterprise aboneliğine zaten atanmış kimliklere, kaldırılana kadar Temel + Test Planları erişim düzeyi atanamaz.
Pipelines
Hız sınırlama, Azure Pipelines için benzerdir. Her işlem hattı, kendi kaynak tüketimi izlenen tek bir varlık olarak kabul edilir. Derleme aracıları şirket içinde barındırılıyor olsa bile, günlükleri kopyalama ve gönderme biçiminde bir yük oluştururlar.
Kayan 5 dakikalık bir pencerede tek bir işlem hattı için 200 TSTU sınırı uygularız. Bu sınır, kullanıcılar için genel tüketim sınırıyla aynıdır. İşlem hattı hız sınırlaması nedeniyle gecikirse veya engellenirse, ekli günlüklerde bir ileti görüntülenir.
API istemci deneyimi
İstekler geciktirildiğinde veya engellendiğinde Azure DevOps, API istemcilerinin tepki vermesine yardımcı olmak için yanıt üst bilgilerini döndürür. Tam olarak standart hale getirilmemiş olsa da , bu üst bilgiler yaygın olarak diğer popüler hizmetlerle uyumludur.
Aşağıdaki tabloda kullanılabilir üst bilgiler ve bunların anlamı listeleniyor.
X-RateLimit-Delay
dışında, istekler gecikmeye başlamadan önce bu üst bilgilerin tümü gönderilir.
Bu tasarım, istemcilere istek oranını proaktif olarak yavaşlatma fırsatı verir.
Üst bilgi adı
Açıklama
Retry-After
Rfc 6585 tarafından belirtilen üst bilgi, bir sonraki isteğinizi göndermeden önce algılama eşiğinin altına düşmek için ne kadar beklemeniz gerektiğini size bildirir. Birimler: saniye.
X-RateLimit-Resource
Ulaşılan hizmetin ve eşiğin türünü gösteren özel üst bilgi. Eşik türleri ve hizmet adları zaman içinde ve uyarı olmadan değişebilir. Bu dizeyi bir insana görüntülemenizi öneririz, ancak hesaplama için bu dizeye güvenmemenizi öneririz.
X-RateLimit-Delay
İsteğin ne kadar geciktiği. Birimler: en fazla üç ondalık basamak içeren saniye (milisaniye).
X-RateLimit-Limit
Gecikmeler uygulanmadan önce izin verilen toplam TSTU sayısı.
X-RateLimit-Remaining
Gecikmeden önce kalan TSTU sayısı. İstekler zaten gecikiyorsa veya engelleniyorsa 0'dır.
X-RateLimit-Reset
Tüm kaynak tüketimi hemen durdurulursa izlenen kullanımın 0 TSTU'ya döneceği zaman. Unix dönem süresiyle ifade edilir.
İş izleme, işlem ve proje sınırları
Azure DevOps, bir kuruluşta sahip olabileceğiniz proje sayısı ve her projede sahip olabileceğiniz ekip sayısı için sınırlar uygular. Ayrıca iş öğeleri, sorgular, kapsamlar, panolar, panolar ve daha fazlası için sınırlara dikkat edin. Daha fazla bilgi için bkz . İş izleme, işlem ve proje sınırları.
Wiki
Her zamanki depo sınırlarına ek olarak, bir proje için tanımlanan wiki'ler tek dosya başına 25 MB ile sınırlıdır.
Hizmet bağlantıları
Hizmet bağlantıları oluşturmaya yönelik proje başına sınır yoktur. Ancak, Microsoft Entra Id aracılığıyla uygulanan sınırlar olabilir. Ek bilgi için aşağıdaki makaleleri gözden geçirin:
- Microsoft Entra hizmet limitleri ve kısıtlamaları
- Azure aboneliği ve hizmet limitleri, kotalar ve kısıtlamalar