Beleid voor aanvraaglimieten
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer-
Met het beleid voor aanvraaglimieten van een workloadgroep kunt u de resources beperken die door de aanvraag worden gebruikt tijdens de uitvoering.
Het beleidsobject
Elke limiet bestaat uit:
- Een getypte
Value
- de waarde van de limiet. -
IsRelaxable
: een Booleaanse waarde die definieert of de limiet kan worden versoepeld door de beller, als onderdeel van de aanvraageigenschappen.
De volgende limieten kunnen worden geconfigureerd:
Eigenschap | Type | Beschrijving | Ondersteunde waarden | Overeenkomende eigenschap van clientaanvraag |
---|---|---|---|---|
DataScope | string |
Het gegevensbereik van de query. Deze waarde bepaalt of de query van toepassing is op alle gegevens of alleen op de hot-cache. |
All , HotCache of null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
De maximale hoeveelheid geheugen (in bytes) die een query kan toewijzen. | [1 , 50% van het totale RAM-geheugen van één knooppunt] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
De maximale hoeveelheid geheugen (in bytes) die een queryoperator kan toewijzen. | [1 , 50% van het totale RAM-geheugen van één knooppunt] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
Het percentage threads op elk knooppunt om de uitvoering van query's uit te schakelen. Als deze is ingesteld op 100%, wijst het cluster alle CPU's op elk knooppunt toe. Bijvoorbeeld 16 CPU's op een cluster dat is geïmplementeerd op Azure D14_v2-knooppunten. | [1 , 100 ] |
query_fanout_threads_percent |
MaxFanoutNodesPercentage | int |
Het percentage knooppunten in het cluster om de uitvoering van query's uit te schakelen. Functies op een vergelijkbare manier als MaxFanoutThreadsPercentage . |
[1 , 100 ] |
query_fanout_nodes_percent |
MaxResultRecords | long |
Het maximum aantal records dat een aanvraag mag retourneren aan de beller, waarna de resultaten worden afgekapt. De afkappingslimiet is van invloed op het uiteindelijke resultaat van de query, zoals teruggegeven aan de client. De afkappingslimiet is echter niet van toepassing op tussenliggende resultaten van subquery's, zoals subquery's die het gevolg zijn van kruislingse clusterverwijzingen. | [1 , 9223372036854775807 ] |
truncationmaxrecords |
MaxResultBytes | long |
De maximale gegevensgrootte (in bytes) dat een aanvraag mag terugkeren naar de aanroeper, waarna de resultaten worden afgekapt. De afkappingslimiet is van invloed op het uiteindelijke resultaat van de query, zoals teruggegeven aan de client. De afkappingslimiet is echter niet van toepassing op tussenliggende resultaten van subquery's, zoals subquery's die het gevolg zijn van kruislingse clusterverwijzingen. | [1 , 9223372036854775807 ] |
truncationmaxsize |
MaxExecutionTime | timespan |
De maximale duur van een aanvraag. notities: 1) Dit kan worden gebruikt om meer limieten toe te passen op de standaardlimieten voor uitvoeringstijd, maar niet om ze uit te breiden. 2) Time-outverwerking staat niet op de resolutie van seconden, maar is ontworpen om te voorkomen dat een query gedurende minutenwordt uitgevoerd. 3) De tijd die nodig is om de nettolading weer op de client te lezen, wordt niet behandeld als onderdeel van de time-out. Dit hangt af van hoe snel de beller de gegevens uit de stream haalt. 4) De totale uitvoeringstijd kan de geconfigureerde waarde overschrijden als het afgebroken uitvoeren langer duurt. |
[00:00:00 , 01:00:00 ] |
servertimeout |
Eigenschap | Type | Beschrijving | Ondersteunde waarden | Overeenkomende eigenschap van clientaanvraag |
---|---|---|---|---|
DataScope | string |
Het gegevensbereik van de query. Deze waarde bepaalt of de query van toepassing is op alle gegevens of alleen op de hot-cache. |
All , HotCache of null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
De maximale hoeveelheid geheugen (in bytes) die een query kan toewijzen. | [1 , 50% van het totale RAM-geheugen van één knooppunt] |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
De maximale hoeveelheid geheugen (in bytes) die een queryoperator kan toewijzen. | [1 , 50% van het totale RAM-geheugen van één knooppunt] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
Het percentage threads op elk knooppunt om de uitvoering van query's uit te schakelen. Als deze is ingesteld op 100%, wijst eventhouse alle CPU's op elk knooppunt toe. Bijvoorbeeld 16 CPU's op een gebeurtenishuis dat is geïmplementeerd op Azure D14_v2-knooppunten. | [1 , 100 ] |
query_fanout_threads_percent |
MaxFanoutNodesPercentage | int |
Het percentage knooppunten in het Eventhouse om de uitvoering van query's uit te schakelen. Functies op een vergelijkbare manier als MaxFanoutThreadsPercentage . |
[1 , 100 ] |
query_fanout_nodes_percent |
MaxResultRecords | long |
Het maximum aantal records dat een aanvraag mag retourneren aan de beller, waarna de resultaten worden afgekapt. De afkappingslimiet is van invloed op het uiteindelijke resultaat van de query, zoals teruggegeven aan de client. De afkappingslimiet is echter niet van toepassing op tussenliggende resultaten van subquery's, zoals de resultaten van kruisgebeurtenisverwijzingen. | [1 , 9223372036854775807 ] |
truncationmaxrecords |
MaxResultBytes | long |
De maximale gegevensgrootte (in bytes) dat een aanvraag mag terugkeren naar de aanroeper, waarna de resultaten worden afgekapt. De afkappingslimiet is van invloed op het uiteindelijke resultaat van de query, zoals teruggegeven aan de client. De afkappingslimiet is echter niet van toepassing op tussenliggende resultaten van subquery's, zoals resultaten van kruisgebeurtenisverwijzingen. | [1 , 9223372036854775807 ] |
truncationmaxsize |
MaxExecutionTime | timespan |
De maximale duur van een aanvraag. notities: 1) Dit kan worden gebruikt om meer limieten toe te passen op de standaardlimieten voor uitvoeringstijd, maar niet om ze uit te breiden. 2) Time-outverwerking staat niet op de resolutie van seconden, maar is ontworpen om te voorkomen dat een query gedurende minutenwordt uitgevoerd. 3) De tijd die nodig is om de nettolading weer op de client te lezen, wordt niet behandeld als onderdeel van de time-out. Dit hangt af van hoe snel de beller de gegevens uit de stream haalt. 4) De totale uitvoeringstijd kan groter zijn dan de geconfigureerde waarde als het afgebroken uitvoeren langer duurt. |
[00:00:00 , 01:00:00 ] |
servertimeout |
Notitie
Een limiet die niet is gedefinieerd of als null
is gedefinieerd, wordt overgenomen uit het beleid voor aanvraaglimieten van de default
workloadgroep.
CPU-resourcegebruik
Query's kunnen alle CPU-resources in het cluster gebruiken. Wanneer meerdere query's gelijktijdig worden uitgevoerd, gebruikt het systeem standaard een fair round robin-benadering om resources te distribueren. Deze strategie is optimaal voor het bereiken van hoge prestaties met ad-hocquery's.
Query's kunnen alle CPU-resources in Eventhouse gebruiken. Wanneer meerdere query's gelijktijdig worden uitgevoerd, gebruikt het systeem standaard een fair round robin-benadering om resources te distribueren. Deze strategie is optimaal voor het bereiken van hoge prestaties met ad-hocquery's.
Er zijn echter scenario's waarin u de CPU-resources wilt beperken die zijn toegewezen aan een specifieke query. Als u bijvoorbeeld een achtergrondtaak uitvoert die ruimte biedt voor hogere latenties. Het beleid voor aanvraaglimieten biedt de flexibiliteit om een lager percentage threads of knooppunten op te geven dat moet worden gebruikt bij het uitvoeren van gedistribueerde subquerybewerkingen. De standaardinstelling is 100%.
De workloadgroep default
De default
workloadgroep heeft standaard het volgende beleid gedefinieerd. Dit beleid kan worden gewijzigd.
{
"DataScope": {
"IsRelaxable": true,
"Value": "All"
},
"MaxMemoryPerQueryPerNode": {
"IsRelaxable": true,
"Value": < 50% of a single node's total RAM >
},
"MaxMemoryPerIterator": {
"IsRelaxable": true,
"Value": 5368709120
},
"MaxFanoutThreadsPercentage": {
"IsRelaxable": true,
"Value": 100
},
"MaxFanoutNodesPercentage": {
"IsRelaxable": true,
"Value": 100
},
"MaxResultRecords": {
"IsRelaxable": true,
"Value": 500000
},
"MaxResultBytes": {
"IsRelaxable": true,
"Value": 67108864
},
"MaxExecutiontime": {
"IsRelaxable": true,
"Value": "00:04:00"
}
}
Notitie
- Limieten in de
default
workloadgroep moeten worden gedefinieerd en hebben een niet-null
waarde. - Alle limieten in de workloadgroep
default
zijnIsRelaxable
ingesteld optrue
. - Aanvraaglimieten zijn uitgeschakeld voor specifieke opdrachttypen binnen de
default
workloadgroep, zoals.export
opdrachten en opnemen van query- opdrachten zoals.set-or-append
en.set-or-replace
. Wanneer deze opdrachten worden toegewezen aan een niet-standaardwerkbelastinggroep, worden de aanvraaglimieten die zijn opgegeven in het beleid van toepassing.
Voorbeeld
De volgende JSON vertegenwoordigt een beleidsobject voor aangepaste aanvragen:
{
"DataScope": {
"IsRelaxable": true,
"Value": "HotCache"
},
"MaxMemoryPerQueryPerNode": {
"IsRelaxable": true,
"Value": 2684354560
},
"MaxMemoryPerIterator": {
"IsRelaxable": true,
"Value": 2684354560
},
"MaxFanoutThreadsPercentage": {
"IsRelaxable": true,
"Value": 50
},
"MaxFanoutNodesPercentage": {
"IsRelaxable": true,
"Value": 50
},
"MaxResultRecords": {
"IsRelaxable": true,
"Value": 1000
},
"MaxResultBytes": {
"IsRelaxable": true,
"Value": 33554432
},
"MaxExecutiontime": {
"IsRelaxable": true,
"Value": "00:01:00"
}
}