Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Serviços do Azure DevOps
O Azure DevOps Services usa a multilocação para reduzir custos e melhorar o desempenho. Esse design pode causar problemas de desempenho ou interrupções quando outros usuários de recursos compartilhados têm picos de consumo. Para ajudar a evitar isso, o Azure DevOps limita os recursos que cada usuário pode consumir e o número de solicitações que pode fazer a determinados comandos. Se você exceder esses limites, as solicitações futuras poderão ser atrasadas ou bloqueadas.
Saiba mais em limites do Git e práticas recomendadaspara evitar atingir limites de taxa.
Limite de consumo global
O Azure DevOps tem um limite de consumo global que atrasa solicitações de usuários individuais quando os recursos compartilhados correm o risco de serem sobrecarregados. Esse limite ajuda a evitar interrupções quando os recursos compartilhados estão perto de serem sobrecarregados. Normalmente, usuários individuais experimentam solicitações atrasadas somente quando ocorre um dos seguintes incidentes:
- Um de seus recursos compartilhados corre o risco de ser sobrecarregado.
- Seu uso pessoal excede 200 vezes o consumo de um usuário típico em uma janela deslizante de cinco minutos.
O atraso depende do nível de consumo sustentado do usuário. Os atrasos variam de alguns milissegundos por solicitação até 30 segundos. Quando o consumo cai para zero ou o recurso não é sobrecarregado, os atrasos param dentro de cinco minutos. Se o consumo permanecer alto, os atrasos poderão continuar indefinidamente para proteger o recurso.
Quando uma solicitação de usuário é atrasada por um período significativo, o usuário recebe um email e uma faixa de aviso na página web. Para a conta usada para serviços de build e outras pessoas sem um endereço de email, os membros do grupo Project Collection Administrators recebem o email. Para mais informações, veja Monitoramento de uso.
Quando as solicitações de um usuário individual são bloqueadas, o usuário recebe respostas com código HTTP 429 (muitas solicitações) e uma mensagem semelhante à seguinte:
TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource <resource name> in namespace <namespace ID>.
Unidades de desempenho do Azure DevOps
Os usuários do Azure DevOps consomem muitos recursos compartilhados e o nível de consumo depende de fatores como:
- Carregar um grande número de arquivos para o controle de versão impõe carga sobre bancos de dados e contas de armazenamento.
- Executando consultas complexas de item de trabalho, o que aumenta a carga do banco de dados com base no número de itens de trabalho que estão sendo pesquisados.
- Executando compilações, que baixam arquivos do controle de versão e produzem saída de log.
- Operações gerais, que consomem CPU e memória em diferentes partes do serviço.
Para medir essa atividade, o Azure DevOps expressa o consumo de recursos em TSTUs (unidades de taxa de transferência) do Azure DevOps. Um TSTU é uma unidade abstrata de carga que representa uma mistura de recursos diferentes, incluindo:
- Uso do banco de dados, medido principalmente por meio de DTUs do Banco de Dados SQL do Azure.
- Uso de recursos computacionais — CPU, memória e E/S de camadas de aplicativo e agentes de trabalho.
- Uso do armazenamento — largura de banda do Armazenamento do Azure.
Observação
TSTUs são intencionalmente abstratas. Eles agregam o consumo de recursos entre camadas de computação, armazenamento e banco de dados em uma infraestrutura distribuída. As métricas subjacentes (CPU, memória, E/S, DTUs) não são diretamente expostas ou significativas por conta própria. As TSTUs fornecem uma maneira unificada de representar a carga, facilitando o gerenciamento e o monitoramento do uso sem expor toda a complexidade dos componentes de recursos individuais. Não é possível calcular o uso em TSTUs para uma ação com uma fórmula, mas você pode ver quantas TSTUs uma operação consome na página de monitoramento de uso . Algumas operações, como consultas de item de trabalho, apresentam variações no consumo à medida que sua organização cresce e muda, portanto, talvez seja necessário fazer benchmark periodicamente para garantir precisão.
Atualmente, as TSTUs se concentram principalmente nas DTUs do Banco de Dados SQL do Azure porque os bancos de dados são o recurso compartilhado com maior probabilidade de serem sobrecarregados pelo consumo excessivo.
- Um TSTU representa a carga média gerada por um usuário típico do Azure DevOps durante cinco minutos.
- A atividade normal do usuário pode gerar picos de 10 TSTUs ou menos por cinco minutos.
- Picos maiores, mas menos frequentes, podem atingir até 100 TSTUs.
- O limite global é de 200 TSTUs em qualquer janela deslizante de cinco minutos.
Práticas recomendadas
- Honre o cabeçalho Retry-After: se você o receber em uma resposta, aguarde o tempo especificado antes de enviar outra solicitação. A resposta ainda retorna HTTP 200, portanto, a lógica de repetição não é necessária.
- Monitorar cabeçalhos X-RateLimit: se disponível, acompanhe
X-RateLimit-RemainingeX-RateLimit-Limitpara estimar a rapidez com que você está se aproximando do limite. Isso permite que o cliente suavize os picos de solicitações e evite atrasos forçados.
Observação
As identidades usadas por ferramentas e aplicativos para integração com o Azure DevOps ocasionalmente podem precisar de limites de taxa e uso mais altos além do limite de consumo permitido. Aumente esses limites atribuindo o nível de acesso Básico + Planos de Teste às identidades que seu aplicativo usa. Depois que você não precisar mais de limites de taxa mais altos, reverta para o nível de acesso anterior. Você é cobrado pelo nível de acesso Básico + Planos de Teste apenas durante o período atribuído à identidade. Identidades já atribuídas a uma assinatura do Visual Studio Enterprise não podem ser atribuídas ao nível de acesso Basic + Test Plans até que você remova a assinatura.
Pipelines
A limitação de taxa funciona da mesma maneira para o Azure Pipelines. Cada pipeline é uma entidade individual e seu consumo de recursos é acompanhado separadamente. Mesmo que os agentes de build sejam auto-hospedados, eles geram carga clonando e enviando logs.
Há um limite de 200 TSTU para cada pipeline em uma janela deslizante de 5 minutos. Esse limite corresponde ao limite de consumo global para os usuários. Se o limite de taxa causar atrasos ou bloquear um pipeline, você verá uma mensagem nos anexos de logs.
Experiência do cliente de API
Quando as solicitações são atrasadas ou bloqueadas, o Azure DevOps retorna cabeçalhos de resposta para ajudar os clientes de API a reagir. Embora não sejam totalmente padronizados, esses cabeçalhos estão amplamente alinhados com outros serviços populares.
A tabela a seguir lista os cabeçalhos disponíveis e o que eles significam.
Com exceção de X-RateLimit-Delay, todos esses cabeçalhos são enviados antes que as solicitações comecem a ser atrasadas.
Esse design permite que os clientes reduzam proativamente sua taxa de solicitações.
nome do cabeçalho
Descrição
Retry-After
O cabeçalho especificado pelo RFC 6585 é enviado para informar o tempo necessário de espera antes de enviar sua próxima solicitação, garantindo que você fique abaixo do limiar de detecção. Unidades: segundos.
X-RateLimit-Resource
Um cabeçalho personalizado que indica o serviço e o tipo de limite que foi atingido. Os tipos de limite e os nomes de serviço podem variar ao longo do tempo e sem aviso. É recomendável exibir essa cadeia de caracteres para um humano, mas não depender dela para computação.
X-RateLimit-Delay
Por quanto tempo a solicitação está atrasada. Unidades: segundos com até três casas decimais (milissegundos).
X-RateLimit-Limit
Número total de TSTUs permitidas antes de serem impostos os atrasos.
X-RateLimit-Remaining
Número de TSTUs restantes antes do início dos atrasos. Se as solicitações já estiverem atrasadas ou bloqueadas, será 0.
X-RateLimit-Reset
Hora em que, se todo o consumo de recursos for interrompido imediatamente, o uso rastreado retornará a 0 TSTUs. Expresso na época do Unix.
Rastreamento de trabalho, processo e limites de projeto
O Azure DevOps limita o número de projetos que você pode ter em uma organização e o número de equipes que você pode ter em cada projeto. Também há limites para itens de trabalho, consultas, listas de pendências, quadros, dashboards e muito mais. Para obter mais informações, consulte Acompanhamento de trabalho, processo e limites de projeto.
Wiki
Além dos limites habituais do repositório, um arquivo wiki em um projeto pode ter até 25 MB.
Conexões de serviço
Não há limites por projeto na criação de conexões de serviço. No entanto, os limites podem ser impostos por meio da ID do Microsoft Entra. Para obter mais informações, consulte os seguintes artigos:
- Limites de serviço e restrições do Microsoft Entra
- Assinatura do Azure e Limites de Serviço, Cotas e Restrições