Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Serviços de DevOps do Azure
Os Serviços de DevOps do Azure usam 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 eles podem fazer a determinados comandos. Se você exceder esses limites, solicitações futuras poderão ser atrasadas ou bloqueadas.
Saiba mais em Limites do Git e Práticas recomendadas para 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. Os usuários individuais normalmente enfrentam solicitações atrasadas somente quando ocorre um dos seguintes incidentes:
- Um dos seus recursos comuns corre o risco de ficar sobrecarregado.
- O seu uso pessoal excede em 200 vezes o consumo de um utilizador típico num intervalo temporal contínuo de cinco minutos.
O atraso depende do nível sustentado de consumo do utilizador. 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 em cinco minutos. Se o consumo permanecer elevado, os atrasos podem continuar indefinidamente para proteger o recurso.
Quando um pedido do utilizador é atrasado por um período significativo, o utilizador recebe um e-mail e um banner de aviso no website. Para a conta de serviço de compilação e outras contas sem endereço de e-mail, os membros do grupo Administradores de Coleção de Projetos recebem o email. Para obter mais informações, veja Monitorização da utilização.
Quando as solicitações de um usuário individual são bloqueadas, o usuário recebe respostas com o 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 throughput do Azure DevOps
Os usuários do Azure DevOps consomem muitos recursos compartilhados e o nível de consumo depende de fatores como:
- Upload de um grande número de arquivos para o controle de versão, o que coloca carga em bancos de dados e contas de armazenamento.
- Execução de 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 unidades de taxa de transferência (TSTUs) do Azure DevOps. Uma TSTU é uma unidade abstrata de carga que representa uma mistura de diferentes recursos, incluindo:
- Uso do banco de dados — medido principalmente por meio de DTUs do Banco de Dados SQL do Azure.
- Uso de computação — CPU, memória e E/S de camadas aplicacionais e agentes de trabalho.
- Uso do armazenamento — largura de banda do Armazenamento do Azure.
Observação
As 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 si só. Os 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 quantos TSTUs uma operação consome na página de monitoramento de uso . Algumas operações, como consultas de itens de trabalho, variam em consumo à medida que a sua organização cresce e muda, portanto, talvez seja necessário fazer medições de referência periodicamente para manter 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 a cada cinco minutos.
- Picos maiores, mas menos frequentes, podem atingir até 100 TSTUs.
- O limite global é de 200 TSTUs em qualquer período deslizante de cinco minutos.
Melhores práticas
- Respeite o cabeçalho Retry-After: Se você recebê-lo 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.
- Monitore os cabeçalhos X-RateLimit: se disponível, acompanhe
X-RateLimit-Remaining
eX-RateLimit-Limit
para aproximar a rapidez com que se está a aproximar do limite. Isso permite que seu cliente suavize as explosões de solicitações e evite atrasos forçados.
Observação
As identidades usadas por ferramentas e aplicativos para integração com o Azure DevOps podem, ocasionalmente, precisar de taxas e limites de uso mais altos além do limite de consumo permitido. Aumente esses limites atribuindo o nível de acesso Basic + Test Plans às identidades que seu aplicativo usa. Depois de não precisar mais de limites de tarifa mais altos, reverta para o nível de acesso anterior. Você será cobrado pelo nível de acesso Básico + Planos de Teste somente pelo período atribuído à identidade. As identidades já atribuídas a uma assinatura do Visual Studio Enterprise não podem receber o nível de acesso Básico + Planos de Teste até que você remova a assinatura.
Tubulações
A limitação de taxa funciona da mesma forma para o Azure Pipelines. Cada pipeline é uma entidade individual e seu consumo de recursos é rastreado separadamente. Mesmo que os agentes de compilação sejam auto-hospedados, eles geram carga clonando e enviando logs.
Há um limite de 200 TSTU para cada tubulação em uma janela deslizante de 5 minutos. Este limite corresponde ao limite de consumo global para os utilizadores. Se a limitação de taxa atrasar ou bloquear um pipeline, você verá uma mensagem nos logs anexados.
Experiência do cliente 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 totalmente padronizados, esses cabeçalhos estão amplamente em linha 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 estes cabeçalhos são enviados antes que as solicitações comecem a ser atrasadas.
Esse design permite que os clientes diminuam proativamente sua taxa de solicitações.
Nome do cabeçalho
Descrição
Repetir - Um cabeçalho personalizado que indica o serviço e o tipo de limiar alcançado. Os tipos de limite e os nomes de serviço podem variar ao longo do tempo e sem aviso. Exiba essa cadeia de caracteres para um ser humano, mas não confie nela para computação.
X-RateLimit-Delay
Quanto tempo o pedido está atrasado. Unidades: segundos com até três casas decimais (milissegundos).
X-RateLimit-Limit
Número total de TSTU autorizadas antes da imposição de atrasos.
X-RateLimit-Remaining
Número de TSTU 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 parar imediatamente, o uso rastreado retorna a 0 TSTUs. Expresso em tempo da época Unix.
Acompanhamento de trabalho, processo e limites do 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, painéis e muito mais. Para obter mais informações, consulte Controlo de trabalho, processos e limites de projetos.
Wiki
Além dos limites usuais 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 através do Microsoft Entra ID. Para obter mais informações, consulte os seguintes artigos:
- Limites e restrições de serviço do Microsoft Entra
- Subscrição do Azure e limites, quotas e restrições do serviço