Condividi tramite


Criteri di limite di frequenza delle richieste

Si applica a: ✅Microsoft FabricEsplora dati di Azure

I criteri di limite di frequenza delle richieste del gruppo di carico di lavoro consentono di limitare il numero di richieste simultanee classificate nel gruppo di carico di lavoro, per gruppo di carico di lavoro o per entità.

I limiti di frequenza vengono applicati a livello definito dai criteri di imposizione frequenza delle richieste del gruppo di carico di lavoro.

Oggetto criteri

I criteri di limite di frequenza delle richieste hanno le proprietà seguenti:

Nome Valori supportati Descrizione
IsEnabled true, false Indica se il criterio è abilitato o meno.
Portata WorkloadGroup, Principal Ambito a cui si applica il limite.
LimitKind ConcurrentRequests, ResourceUtilization Tipo di limite di frequenza delle richieste.
Proprietà Contenitore delle proprietà Proprietà del limite di frequenza delle richieste.

Limite di frequenza delle richieste simultanee

Un limite di frequenza delle richieste di tipo ConcurrentRequests include la proprietà seguente:

Nome Digitare Descrizione Valori supportati
MaxConcurrentRequests int Numero massimo di richieste simultanee. [0, 10000]

Nota

  • Se un gruppo di carico di lavoro non ha un limite specificato per le richieste simultanee massime, è soggetto al valore massimo predefinito di 10000.

Quando una richiesta supera il limite massimo di richieste simultanee:

  • Lo stato della richiesta, come presentato dai comandi informazioni di sistema , verrà Throttled.
  • Il messaggio di errore includerà l'origine della limitazione e la capacità superata.

La tabella seguente illustra alcuni esempi di richieste simultanee che superano il limite massimo e il messaggio di errore restituito da queste richieste:

Scenario Messaggio di errore
Comando .create table limitato classificato al gruppo di carico di lavoro default, con un limite di 80 richieste simultanee nell'ambito del gruppo di carico di lavoro. Il comando di gestione è stato interrotto a causa della limitazione. Il nuovo tentativo dopo un backoff potrebbe avere esito positivo. CommandType: 'TableCreate', Capacity: 80, Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'.
Query limitata classificata in un gruppo di carico di lavoro denominato MyWorkloadGroup, che ha un limite di 50 richieste simultanee nell'ambito del gruppo di carico di lavoro. La query è stata interrotta a causa della limitazione. Il nuovo tentativo dopo un backoff potrebbe avere esito positivo. Capacità: 50, Origine: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'.
Query limitata classificata in un gruppo di carico di lavoro denominato MyWorkloadGroup, che ha un limite di 10 richieste simultanee nell'ambito di un'entità di sicurezza. La query è stata interrotta a causa della limitazione. Il nuovo tentativo dopo un backoff potrebbe avere esito positivo. Capacità: 10, Origin: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
  • Il codice di risposta HTTP verrà 429. Il codice secondario verrà TooManyRequests.
  • Il tipo di eccezione verrà QueryThrottledException per le query e ControlCommandThrottledException per i comandi di gestione.

Nota

  • Se uno dei limiti definiti dai criteri di capacità o da un criterio di limite di frequenza delle richieste viene superato, verrà limitato un comando di gestione.
  • I criteri di capacità possono limitare la frequenza delle richieste che rientrano in una categoria specifica, ad esempio gli inserimenti.

Limite di frequenza di utilizzo delle risorse

Un limite di frequenza delle richieste di tipo ResourceUtilization include le proprietà seguenti:

Nome Digitare Descrizione Valori supportati
ResourceKind ResourceKind Risorsa da limitare.

Quando ResourceKind è TotalCpuSeconds, il limite viene applicato in base ai report post-esecuzione dell'utilizzo della CPU delle richieste completate. Le richieste che segnalano l'utilizzo di 0,005 secondi di CPU o inferiore non vengono conteggiate. Il limite (MaxUtilization) rappresenta i secondi totali di CPU che possono essere utilizzati dalle richieste entro un intervallo di tempo specificato (TimeWindow). Ad esempio, un utente che esegue query ad hoc può avere un limite di 1000 secondi di CPU all'ora. Se questo limite viene superato, le query successive verranno limitate, anche se avviate contemporaneamente, poiché i secondi cumulativi della CPU hanno superato il limite definito entro il periodo di finestra temporale scorrevole.
RequestCount, TotalCpuSeconds
MaxUtilization long Valore massimo della risorsa che può essere utilizzata. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Intervallo temporale scorrevole durante il quale viene applicato il limite. [00:01:00, 1.00:00:00]

Quando una richiesta supera il limite di utilizzo delle risorse:

  • Lo stato della richiesta, come presentato dai comandi informazioni di sistema , verrà Throttled.
  • Il messaggio di errore includerà l'origine della limitazione e la quota superata. Per esempio:

La tabella seguente illustra alcuni esempi di richieste che superano il limite di frequenza di utilizzo delle risorse e il messaggio di errore restituito da queste richieste:

Scenario Messaggio di errore
Richiesta limitata classificata in un gruppo di carico di lavoro denominato Automated Requests, che ha un limite di 1000 richieste all'ora nell'ambito di un'entità. La richiesta è stata negata a causa del superamento delle limitazioni di quota. Risorsa: 'RequestCount', Quota: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
Richiesta limitata, classificata in un gruppo di carico di lavoro denominato Automated Requests, che ha un limite di 2000 secondi di CPU totali all'ora nell'ambito del gruppo di carico di lavoro. La richiesta è stata negata a causa del superamento delle limitazioni di quota. Risorsa: 'TotalCpuSeconds', Quota: '2000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'.
  • Il codice di risposta HTTP verrà 429. Il codice secondario verrà TooManyRequests.
  • Il tipo di eccezione verrà QuotaExceededException.

Impatto della coerenza sui limiti di frequenza

Con coerenza assoluta, il limite predefinito per le richieste simultanee massime dipende dallo SKU del cluster e viene calcolato come: Cores-Per-Node x 10. Ad esempio, un cluster configurato con i nodi di Azure D14_v2, in cui ogni nodo ha 16 vCore, avrà un limite predefinito di 16 x 10 = 160.

Con coerenza debole, il limite predefinito effettivo per le richieste simultanee massime dipende dallo SKU del cluster e dal numero di teste di query e viene calcolato come: Cores-Per-Node x 10 x Number-Of-Query-Heads. Ad esempio, un cluster configurato con Azure D14_v2 e 5 teste di query, in cui ogni nodo ha 16 vCore, avrà un limite predefinito effettivo di 16 x 10 x 5 = 800.

Con coerenza assoluta, il limite predefinito per le richieste simultanee massime dipende dallo SKU della eventhouse e viene calcolato come: Cores-Per-Node x 10. Ad esempio, una eventhouse configurata con i nodi di Azure D14_v2, in cui ogni nodo ha 16 vCore, avrà un limite predefinito di 16 x 10 = 160.

Con coerenza debole, il limite predefinito effettivo per le richieste simultanee massime dipende dallo SKU della eventhouse e dal numero di teste di query e viene calcolato come: Cores-Per-Node x 10 x Number-Of-Query-Heads. Ad esempio, una eventhouse configurata con Azure D14_v2 e 5 teste di query, in cui ogni nodo ha 16 vCore, avrà un limite predefinito effettivo di 16 x 10 x 5 = 800.

Per altre informazioni, vedere coerenza delle query.

Gruppo di carico di lavoro default

Il gruppo di carico di lavoro default ha i criteri seguenti definiti per impostazione predefinita. Questo criterio può essere modificato.

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

Nota

  • Quando si modificano i criteri per il gruppo di carico di lavoro default, è necessario definire un limite per le richieste simultanee massime.

Esempi

I criteri seguenti consentono di:

  • 500 richieste simultanee per il gruppo di carico di lavoro.
  • 25 richieste simultanee per ogni entità.
  • 50 richieste per entità all'ora.
[
  {
    "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"
    }
  }
]

I criteri seguenti bloccano tutte le richieste classificate nel gruppo di carico di lavoro:

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