Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services
Azure DevOps Services usa servicios multiinquilino para reducir los costos y mejorar el rendimiento. Este diseño puede provocar problemas de rendimiento o interrupciones cuando otros usuarios de recursos compartidos tienen picos de consumo. Para ayudar a evitar esto, Azure DevOps limita los recursos que cada usuario puede consumir y el número de solicitudes que pueden realizar en determinados comandos. Si supera estos límites, las solicitudes futuras se pueden retrasar o bloquear.
Obtenga más información en Límites de Git y Procedimientos recomendadospara evitar alcanzar los límites de velocidad.
Límite de consumo global
Azure DevOps tiene un límite de consumo global que retrasa las solicitudes de usuarios individuales cuando los recursos compartidos corren el riesgo de sobrecargarse. Este límite ayuda a evitar interrupciones cuando los recursos compartidos están cerca de sobrecargarse. Normalmente, los usuarios individuales experimentan solicitudes retrasadas solo cuando se produce uno de los siguientes incidentes:
- Uno de sus recursos compartidos está en riesgo de sobrecargarse.
- Su uso personal supera los 200 veces el consumo de un usuario típico dentro de una ventana deslizante de cinco minutos.
El retraso depende del nivel de consumo sostenido del usuario. Los retrasos van desde unos pocos milisegundos por solicitud hasta 30 segundos. Cuando el consumo cae a cero o el recurso no está sobrecargado, los retrasos se detienen en cinco minutos. Si el consumo permanece alto, los retrasos pueden continuar indefinidamente para proteger el recurso.
Cuando una solicitud de usuario se retrasa por una cantidad significativa, el usuario recibe un correo electrónico y un banner de advertencia en la web. Para la cuenta del servicio de compilación y otras cuentas que no tienen una dirección de correo electrónico, los miembros del grupo de Administradores de la colección de proyectos reciben el correo electrónico. Para más información, consulte Supervisión del uso.
Cuando se bloquean las solicitudes de un usuario individual, el usuario recibe respuestas con código HTTP 429 (demasiadas solicitudes) y un mensaje similar al siguiente:
TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource <resource name> in namespace <namespace ID>.
Unidades de rendimiento de Azure DevOps
Los usuarios de Azure DevOps consumen muchos recursos compartidos y el nivel de consumo depende de factores como:
- Carga de un gran número de archivos en el control de versiones, lo que impone carga en las bases de datos y las cuentas de almacenamiento.
- Ejecutar consultas complejas de elementos de trabajo, lo que aumenta la carga de la base de datos en función del número de elementos de trabajo que se buscan.
- Ejecutando compilaciones, que descargan archivos del control de versiones y generan la salida de registros.
- Operaciones generales, que consumen CPU y memoria en diferentes partes del servicio.
Para medir esta actividad, Azure DevOps expresa el consumo de recursos en unidades de rendimiento (TTU) de Azure DevOps. Un TSTU es una unidad abstracta de carga que representa una combinación de distintos recursos, entre los que se incluyen:
- Uso de la base de datos, medido principalmente a través de DTU de Azure SQL Database.
- Uso de proceso—CPU, memoria y E/S de capas de aplicación y agentes de trabajo.
- Uso del almacenamiento: ancho de banda de Azure Storage.
Nota:
Las TSTU son deliberadamente abstractas. Agregan el consumo de recursos en las capas de proceso, almacenamiento y base de datos dentro de una infraestructura distribuida. Las métricas subyacentes (CPU, memoria, E/S, DTU) no se exponen directamente ni son significativas por sí mismas. Las TTU proporcionan una manera unificada de representar la carga, lo que facilita la administración y supervisión del uso sin exponer toda la complejidad de los componentes de recursos individuales. No se puede calcular el uso en TSTUs para una acción utilizando una fórmula, pero puede ver cuántos TSTUs consume una operación en la página de supervisión de uso. Algunas operaciones, como las consultas de elementos de trabajo, varían en el consumo a medida que la organización crece y cambia, por lo que es posible que tenga que realizar pruebas comparativas periódicamente para mantener la precisión.
Actualmente, los TSTU se centran principalmente en los DTU de Azure SQL Database, ya que las bases de datos son el recurso compartido más propenso a agotarse debido a un consumo excesivo.
- Un TSTU representa la carga media generada por un usuario típico de Azure DevOps durante cinco minutos.
- La actividad normal del usuario puede generar picos de 10 TTU o menos por cinco minutos.
- Los picos más grandes pero menos frecuentes pueden alcanzar hasta 100 TSTUs.
- El límite global es de 200 TSTUs dentro de cualquier ventana deslizante de cinco minutos.
procedimientos recomendados
- Respeta el encabezado Retry-After: si lo recibes en una respuesta, espera el tiempo especificado antes de enviar otra solicitud. La respuesta sigue devuelve HTTP 200, por lo que no se requiere lógica de reintento.
- Monitoree los encabezados X-RateLimit: Si están disponibles, realice un seguimiento de
X-RateLimit-RemainingyX-RateLimit-Limitpara aproximar qué tan rápidamente se acerca al umbral. Esto permite al cliente suavizar las ráfagas de solicitud y evitar retrasos aplicados.
Nota:
Las identidades que usan las herramientas y las aplicaciones para integrarse con Azure DevOps pueden necesitar ocasionalmente mayores límites de frecuencia y uso más allá del límite de consumo permitido. Aumente estos límites asignando el nivel de acceso Basic + Test Plans a las identidades que usa la aplicación. Después de que ya no necesite límites de velocidad más altos, vuelva al nivel de acceso anterior. Solo se le cobra por el nivel de acceso Basic + Test Plans únicamente durante la duración asignada a la identidad. Las identidades ya asignadas a una suscripción de Visual Studio Enterprise no se pueden asignar al nivel de acceso Basic + Test Plans hasta que quite la suscripción.
Tuberías
La limitación de velocidad funciona de la misma manera para Azure Pipelines. Cada canalización es una entidad individual y su consumo de recursos se realiza un seguimiento por separado. Incluso si los agentes de compilación están autohospedados, generan la carga mediante la clonación y el envío de registros.
Hay un límite de 200 TSTU para cada tubería en una ventana deslizante de 5 minutos. Este límite coincide con el límite de consumo global para los usuarios. Si la limitación de velocidad retrasa o bloquea una canalización, verá un mensaje en los registros adjuntos.
Experiencia de cliente de API
Cuando las solicitudes se retrasan o bloquean, Azure DevOps devuelve encabezados de respuesta para ayudar a los clientes de API a reaccionar. Aunque no está totalmente estandarizado, estos encabezados se alinean ampliamente con otros servicios populares.
En la tabla siguiente se enumeran los encabezados disponibles y lo que significan.
Excepto para X-RateLimit-Delay, todos estos encabezados se envían antes de que las solicitudes empiecen a retrasarse.
Este diseño permite a los clientes ralentizar proactivamente su tasa de solicitudes.
nombre de encabezado
Descripción
Retry-After
El encabezado que especifica RFC 6585 es enviado para informarle cuánto tiempo debe esperar antes de enviar su siguiente solicitud para que permanezca por debajo del umbral de detección. Unidades: segundos.
X-RateLimit-Resource
Encabezado personalizado que indica el servicio y el tipo de umbral alcanzado. Los tipos de umbral y los nombres de servicio pueden variar con el tiempo y sin advertencia. Se recomienda mostrar esta cadena a un usuario, pero no confiar en ella para el cálculo.
X-RateLimit-Delay
Cuánto tiempo se retrasa la solicitud. Unidades: segundos con hasta tres posiciones decimales (milisegundos).
X-RateLimit-Limit
Número total de TSTU permitidos antes de imponer retrasos.
X-RateLimit-Remaining
Número de TSTU restantes antes de que comiencen los retrasos. Si las solicitudes ya están retrasadas o bloqueadas, es 0.
X-RateLimit-Reset
Hora en la que, si todo el consumo de recursos se detiene de inmediato, el uso rastreado vuelve a 0 TTU. Expresado en la época de Unix.
Seguimiento del trabajo, proceso y límites del proyecto
Azure DevOps limita el número de proyectos que puede tener en una organización y el número de equipos que puede tener en cada proyecto. También hay límites para elementos de trabajo, consultas, listas de pendientes, tableros, paneles, y más. Para obtener más información, consulte Seguimiento del trabajo, procesos y límites del proyecto.
Wiki
Además de los límites habituales del repositorio, un archivo wiki de un proyecto puede tener hasta 25 MB.
Conexiones de servicio
No hay límites por proyecto en la creación de conexiones de servicio. Sin embargo, los límites pueden imponerse a través del identificador de Entra de Microsoft. Para obtener más información, consulte los artículos siguientes:
- Límites y restricciones del servicio Microsoft Entra
- Límites, cuotas y restricciones de suscripción y servicios de Microsoft Azure