I criteri relativi ai limiti delle richieste di un gruppo di carico di lavoro consentono di limitare le risorse usate dalla richiesta durante l'esecuzione.
Oggetto criteri
Ogni limite è costituito da:
Un Value tipizzato: il valore del limite.
IsRelaxable : valore booleano che definisce se il limite può essere rilassato dal chiamante, come parte delle proprietà della richiesta della richiesta.
I limiti seguenti sono configurabili:
Proprietà
Digitare
Descrizione
Valori supportati
Proprietà della richiesta client corrispondente
DataScope
string
Ambito dati della query. Questo valore determina se la query si applica a tutti i dati o solo alla cache ad accesso frequente.
All, HotCacheo null
query_datascope
MaxMemoryPerQueryPerNode
long
Quantità massima di memoria (in byte) che una query può allocare.
[1, 50% di ram totale di un nodo singolo]
max_memory_consumption_per_query_per_node
MaxMemoryPerIterator
long
Quantità massima di memoria (in byte) che un operatore di query può allocare.
[1, 50% di ram totale di un nodo singolo]
maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage
int
Percentuale di thread in ogni nodo in cui eseguire l'esecuzione delle query. Se impostato su 100%, il cluster assegna tutte le CPU in ogni nodo. Ad esempio, 16 CPU in un cluster distribuito in nodi di Azure D14_v2.
[1, 100]
query_fanout_threads_percent
MaxFanoutNodesPercentage
int
Percentuale di nodi nel cluster in cui eseguire l'esecuzione delle query. Funzioni in modo analogo a MaxFanoutThreadsPercentage.
[1, 100]
query_fanout_nodes_percent
MaxResultRecords
long
Il numero massimo di record consentiti per restituire una richiesta al chiamante, oltre il quale i risultati vengono troncati. Il limite di troncamento influisce sul risultato finale della query, come restituito al client. Tuttavia, il limite di troncamento non si applica ai risultati intermedi delle sottoquery, ad esempio quelli risultanti dalla presenza di riferimenti tra cluster.
[1, 9223372036854775807]
truncationmaxrecords
MaxResultBytes
long
Le dimensioni massime dei dati (in byte) che una richiesta può restituire al chiamante, oltre la quale i risultati vengono troncati. Il limite di troncamento influisce sul risultato finale della query, come restituito al client. Tuttavia, il limite di troncamento non si applica ai risultati intermedi delle sottoquery, ad esempio quelli risultanti dalla presenza di riferimenti tra cluster.
[1, 9223372036854775807]
truncationmaxsize
MaxExecutionTime
timespan
Durata massima di una richiesta. Note : 1) Questa opzione può essere usata per applicare limiti superiori ai limiti predefiniti al tempo di esecuzione, ma non estenderli. 2) L'elaborazione del timeout non è alla risoluzione di secondi, ma è progettata per impedire l'esecuzione di una query per minuti. 3) Il tempo necessario per leggere nuovamente il payload nel client non viene considerato come parte del timeout. Dipende dalla velocità con cui il chiamante esegue il pull dei dati dal flusso. 4) Il tempo di esecuzione totale può superare il valore configurato se l'interruzione dell'esecuzione richiede più tempo per il completamento.
[00:00:00, 01:00:00]
servertimeout
Proprietà
Digitare
Descrizione
Valori supportati
Proprietà della richiesta client corrispondente
DataScope
string
Ambito dati della query. Questo valore determina se la query si applica a tutti i dati o solo alla cache ad accesso frequente.
All, HotCacheo null
query_datascope
MaxMemoryPerQueryPerNode
long
Quantità massima di memoria (in byte) che una query può allocare.
[1, 50% di ram totale di un nodo singolo]
max_memory_consumption_per_query_per_node
MaxMemoryPerIterator
long
Quantità massima di memoria (in byte) che un operatore di query può allocare.
[1, 50% di ram totale di un nodo singolo]
maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage
int
Percentuale di thread in ogni nodo in cui eseguire l'esecuzione delle query. Se impostato su 100%, l'evento assegna tutte le CPU in ogni nodo. Ad esempio, 16 CPU in una casa eventi distribuita nei nodi di Azure D14_v2.
[1, 100]
query_fanout_threads_percent
MaxFanoutNodesPercentage
int
Percentuale di nodi nella Eventhouse in cui eseguire l'esecuzione delle query. Funzioni in modo analogo a MaxFanoutThreadsPercentage.
[1, 100]
query_fanout_nodes_percent
MaxResultRecords
long
Il numero massimo di record consentiti per restituire una richiesta al chiamante, oltre il quale i risultati vengono troncati. Il limite di troncamento influisce sul risultato finale della query, come restituito al client. Tuttavia, il limite di troncamento non si applica ai risultati intermedi delle sottoquery, ad esempio i risultati derivanti dalla presenza di riferimenti inter-eventhouse.
[1, 9223372036854775807]
truncationmaxrecords
MaxResultBytes
long
Le dimensioni massime dei dati (in byte) che una richiesta può restituire al chiamante, oltre la quale i risultati vengono troncati. Il limite di troncamento influisce sul risultato finale della query, come restituito al client. Tuttavia, il limite di troncamento non si applica ai risultati intermedi delle sottoquery, ad esempio i risultati derivanti dalla presenza di riferimenti inter-eventhouse.
[1, 9223372036854775807]
truncationmaxsize
MaxExecutionTime
timespan
Durata massima di una richiesta. Note : 1) Questa opzione può essere usata per applicare limiti superiori ai limiti predefiniti al tempo di esecuzione, ma non estenderli. 2) L'elaborazione del timeout non è alla risoluzione di secondi, ma è progettata per impedire l'esecuzione di una query per minuti. 3) Il tempo necessario per leggere nuovamente il payload nel client non viene considerato come parte del timeout. Dipende dalla velocità con cui il chiamante esegue il pull dei dati dal flusso. 4) Il tempo di esecuzione totale potrebbe superare il valore configurato se l'interruzione dell'esecuzione richiede più tempo per il completamento.
[00:00:00, 01:00:00]
servertimeout
Nota
Un limite che non è definito o viene definito come null, viene ricavato dai criteri relativi ai limiti delle richieste del gruppo di carico di lavoro default.
Utilizzo delle risorse CPU
Le query possono usare tutte le risorse della CPU all'interno del cluster. Per impostazione predefinita, quando più query vengono eseguite contemporaneamente, il sistema usa un approccio round robin equo per distribuire le risorse. Questa strategia è ottimale per ottenere prestazioni elevate con query ad hoc.
Le query possono usare tutte le risorse della CPU all'interno dell'eventhouse. Per impostazione predefinita, quando più query vengono eseguite contemporaneamente, il sistema usa un approccio round robin equo per distribuire le risorse. Questa strategia è ottimale per ottenere prestazioni elevate con query ad hoc.
Esistono tuttavia scenari in cui è possibile limitare le risorse della CPU allocate a una query specifica. Ad esempio, se si esegue un processo in background in grado di supportare latenze più elevate. I criteri relativi ai limiti delle richieste offrono la flessibilità necessaria per specificare una percentuale inferiore di thread o nodi da usare durante l'esecuzione di operazioni di sottoquery distribuite. L'impostazione predefinita è 100%.
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.
I limiti nel gruppo di carico di lavoro default devono essere definiti e avere un valore nonnull.
Tutti i limiti nel gruppo di carico di lavoro default hanno IsRelaxable impostato su true.
I limiti delle richieste vengono disattivati per tipi di comando specifici all'interno del gruppo di carico di lavoro default, ad esempio comandi .export e inserimento da comandi di query come .set-or-append e .set-or-replace. Quando questi comandi vengono assegnati a un gruppo di carico di lavoro non predefinito, i limiti delle richieste specificati nei criteri diventano applicabili.
Esempio
Il codice JSON seguente rappresenta un oggetto criteri per i limiti delle richieste personalizzate: