Delen via


Beleid voor aanvraaglimieten

Van toepassing op: ✅Microsoft FabricAzure 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, HotCacheof 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, HotCacheof 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 nullis 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 zijn IsRelaxable ingesteld op true.
  • 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"
  }
}