Compartir a través de


Directiva de límite de velocidad de solicitudes

Se aplica a: ✅Microsoft Fabricazure Data Explorer

La directiva de límite de frecuencia de solicitudes del grupo de cargas de trabajo permite limitar el número de solicitudes simultáneas clasificadas en el grupo de cargas de trabajo, por grupo de cargas de trabajo o por entidad de seguridad.

Los límites de velocidad se aplican en el nivel definido por la directiva de cumplimiento de límites de frecuencia de solicitud del grupo de cargas de trabajo.

El objeto de directiva

Una directiva de límite de frecuencia de solicitudes tiene las siguientes propiedades:

Nombre Valores admitidos Descripción
IsEnabled true, false Indica si la directiva está habilitada o no.
Alcance WorkloadGroup, Principal Ámbito al que se aplica el límite.
LimitKind ConcurrentRequests, ResourceUtilization El tipo del límite de velocidad de solicitudes.
Propiedades Contenedor de propiedades Propiedades del límite de velocidad de solicitudes.

Límite de velocidad de solicitudes simultáneas

Un límite de velocidad de solicitud de tipo ConcurrentRequests incluye la siguiente propiedad:

Nombre Tipo Descripción Valores admitidos
MaxConcurrentRequests int Número máximo de solicitudes simultáneas. [0, 10000]

Nota

  • Si un grupo de cargas de trabajo no tiene un límite especificado en las solicitudes simultáneas máximas, está sujeto al valor máximo predeterminado de 10000.

Cuando una solicitud supera el límite en el número máximo de solicitudes simultáneas:

  • El estado de la solicitud, tal como se presenta en Comandos de información del sistema, se Throttled.
  • El mensaje de error incluirá el de origen de de la limitación y la capacidad que se ha superado.

En la tabla siguiente se muestran algunos ejemplos de solicitudes simultáneas que superan el límite máximo y el mensaje de error que devuelven estas solicitudes:

Escenario Mensaje de error
Comando de .create table limitado que se clasificó en el grupo de cargas de trabajo default, que tiene un límite de 80 solicitudes simultáneas en el ámbito del grupo de cargas de trabajo. El comando de administración se anuló debido a la limitación. Volver a intentarlo después de que algún retroceso se realice correctamente. CommandType: 'TableCreate', Capacity: 80, Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'.
Una consulta limitada que se clasificó en un grupo de cargas de trabajo denominado MyWorkloadGroup, que tiene un límite de 50 solicitudes simultáneas en el ámbito del grupo de cargas de trabajo. La consulta se anuló debido a la limitación. Volver a intentarlo después de que algún retroceso se realice correctamente. Capacidad: 50, Origen: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'.
Una consulta limitada que se clasificó en un grupo de cargas de trabajo denominado MyWorkloadGroup, que tiene un límite de 10 solicitudes simultáneas en el ámbito de una entidad de seguridad. La consulta se anuló debido a la limitación. Volver a intentarlo después de que algún retroceso se realice correctamente. Capacidad: 10, Origen: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128d9570'.
  • El código de respuesta HTTP se 429. El subcódigo se TooManyRequests.
  • El tipo de excepción se QueryThrottledException para las consultas y ControlCommandThrottledException para los comandos de administración.

Nota

  • Si se supera cualquiera de los límites definidos por la directiva de capacidad o por una directiva de límite de frecuencia de solicitud, se limitará un comando de administración.
  • La directiva de capacidad puede limitar la tasa de solicitudes que se encuentran en una categoría específica, como las ingestas.

Límite de velocidad de uso de recursos

Un límite de velocidad de solicitud de tipo ResourceUtilization incluye las siguientes propiedades:

Nombre Tipo Descripción Valores admitidos
ResourceKind ResourceKind Recurso que se va a limitar.

Cuando ResourceKind es TotalCpuSeconds, el límite se aplica en función de los informes posteriores a la ejecución del uso de CPU de las solicitudes completadas. Las solicitudes que notifican el uso de 0,005 segundos de CPU o inferior no se cuentan. El límite (MaxUtilization) representa el total de segundos de CPU que pueden consumir las solicitudes dentro de un período de tiempo especificado (TimeWindow). Por ejemplo, un usuario que ejecuta consultas ad hoc puede tener un límite de 1000 segundos de CPU por hora. Si se supera este límite, se limitarán las consultas posteriores, aunque se inicien simultáneamente, ya que los segundos acumulados de CPU han superado el límite definido dentro del período de ventana deslizante.
RequestCount, TotalCpuSeconds
MaxUtilization long El máximo del recurso que se puede usar. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Período de tiempo deslizante durante el que se aplica el límite. [00:01:00, 1.00:00:00]

Cuando una solicitud supera el límite de uso de recursos:

  • El estado de la solicitud, tal como se presenta en Comandos de información del sistema, se Throttled.
  • El mensaje de error incluirá el origen de la limitación y el de cuota que se ha superado. Por ejemplo:

En la tabla siguiente se muestran algunos ejemplos de solicitudes que superan el límite de frecuencia de uso de recursos y el mensaje de error que devuelven estas solicitudes:

Escenario Mensaje de error
Una solicitud limitada que se clasificó en un grupo de cargas de trabajo denominado Automated Requests, que tiene un límite de 1000 solicitudes por hora en el ámbito de una entidad de seguridad. Se denegó la solicitud debido a la superación de las limitaciones de cuota. Recurso: 'RequestCount', Cuota: '1000', TimeWindow: '01:00:00', Origen: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128d9570'.
Una solicitud limitada, que se clasificó en un grupo de cargas de trabajo denominado Automated Requests, que tiene un límite de 2000 segundos de CPU totales por hora en el ámbito del grupo de cargas de trabajo. Se denegó la solicitud debido a la superación de las limitaciones de cuota. Recurso: 'TotalCpuSeconds', Quota: '2000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'.
  • El código de respuesta HTTP se 429. El subcódigo se TooManyRequests.
  • El tipo de excepción será QuotaExceededException.

Cómo afecta la coherencia a los límites de velocidad

Con una coherencia fuerte, el límite predeterminado de las solicitudes simultáneas máximas depende de la SKU del clúster y se calcula como: Cores-Per-Node x 10. Por ejemplo, un clúster configurado con nodos de Azure D14_v2, donde cada nodo tiene 16 núcleos virtuales, tendrá un límite predeterminado de 16 x 10 = 160.

Con una coherencia débil, el límite predeterminado efectivo de las solicitudes simultáneas máximas depende de la SKU del clúster y del número de encabezados de consulta, y se calcula como: Cores-Per-Node x 10 x Number-Of-Query-Heads. Por ejemplo, un clúster configurado con Azure D14_v2 y 5 encabezados de consulta, donde cada nodo tiene 16 núcleos virtuales, tendrá un límite predeterminado efectivo de 16 x 10 x 5 = 800.

Con una coherencia fuerte, el límite predeterminado de las solicitudes simultáneas máximas depende de la SKU del centro de eventos y se calcula como: Cores-Per-Node x 10. Por ejemplo, un centro de eventos configurado con nodos de Azure D14_v2, donde cada nodo tiene 16 núcleos virtuales, tendrá un límite predeterminado de 16 x 10 = 160.

Con una coherencia débil, el límite predeterminado efectivo de las solicitudes simultáneas máximas depende de la SKU del centro de eventos y del número de encabezados de consulta, y se calcula como: Cores-Per-Node x 10 x Number-Of-Query-Heads. Por ejemplo, un centro de eventos configurado con Azure D14_v2 y 5 encabezados de consulta, donde cada nodo tiene 16 núcleos virtuales, tendrá un límite predeterminado efectivo de 16 x 10 x 5 = 800.

Para obtener más información, consulte de coherencia de consultas.

El grupo de cargas de trabajo de default

El grupo de cargas de trabajo default tiene la siguiente directiva definida de forma predeterminada. Esta directiva se puede modificar.

[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": < Cores-Per-Node x 10 >
    }
  }
]

Nota

  • Al modificar la directiva para el grupo de cargas de trabajo de default, se debe definir un límite para las solicitudes simultáneas máximas.

Ejemplos

Las siguientes directivas permiten:

  • 500 solicitudes simultáneas para el grupo de cargas de trabajo.
  • 25 solicitudes simultáneas por entidad de seguridad.
  • 50 solicitudes por entidad de seguridad por hora.
[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 500
    }
  },
  {
    "IsEnabled": true,
    "Scope": "Principal",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 25
    }
  },
  {
    "IsEnabled": true,
    "Scope": "Principal",
    "LimitKind": "ResourceUtilization",
    "Properties": {
      "ResourceKind": "RequestCount",
      "MaxUtilization": 50,
      "TimeWindow": "01:00:00"
    }
  }
]

Las directivas siguientes bloquearán todas las solicitudes clasificadas en el grupo de cargas de trabajo:

[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 0
    }
  },
]