다음을 통해 공유


요청 제한 정책

적용 대상: ✅Microsoft FabricAzure Data Explorer

워크로드 그룹의 요청 제한 정책을 사용하면 실행 중에 요청에서 사용하는 리소스를 제한할 수 있습니다.

정책 개체

각 제한은 다음으로 구성됩니다.

  • 형식화된 Value - 제한 값입니다.
  • IsRelaxable - 요청의 요청 속성일부로 호출자가 제한을 완화할 수 있는지 여부를 정의하는 부울 값입니다.

다음 제한은 구성할 수 있습니다.

재산 묘사 지원되는 값 클라이언트 요청 속성 일치
DataScope string 쿼리의 데이터 범위입니다. 이 값은 쿼리가 모든 데이터에 적용되는지 아니면 핫 캐시에만 적용되는지를 결정합니다. All, HotCache또는 null query_datascope
MaxMemoryPerQueryPerNode long 쿼리에서 할당할 수 있는 최대 메모리 양(바이트)입니다. [, 단일 노드의 총 RAM% 50개 ] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long 쿼리 연산자 할당할 수 있는 최대 메모리 양(바이트)입니다. [1, Min(32212254720, 50% 단일 노드의 총 RAM)] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int 쿼리 실행을 팬아웃할 각 노드의 스레드 비율입니다. %100으로 설정하면 클러스터는 각 노드의 모든 CPU를 할당합니다. 예를 들어 Azure D14_v2 노드에 배포된 클러스터의 CPU 16개. [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int 쿼리 실행을 팬아웃할 클러스터의 노드 비율입니다. MaxFanoutThreadsPercentage유사한 방식으로 함수입니다. [1, 100] query_fanout_nodes_percent
MaxResultRecords long 요청이 호출자에게 반환할 수 있는 최대 레코드 수이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 하위 쿼리의 중간 결과(예: 클러스터 간 참조가 있는 결과)에 적용되지 않습니다. [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long 요청이 호출자에게 반환될 수 있는 최대 데이터 크기(바이트)이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 하위 쿼리의 중간 결과(예: 클러스터 간 참조가 있는 결과)에 적용되지 않습니다. [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan 요청의 최대 기간입니다.
참고 사항:
1) 실행 시간기본 제한 위에 더 많은 제한을 배치하지만 확장하지 않는 데 사용할 수 있습니다.
2) 시간 제한 처리는초의 해상도가 아니라
분 동안 쿼리가 실행되지 않도록 설계되었습니다.
3) 클라이언트에서 페이로드를 다시 읽는 데 걸리는 시간은 시간 제한의 일부로 처리되지 않습니다. 호출자가 스트림에서 데이터를 가져오는 빈도에 따라 달라집니다.
4) 실행을 중단하는 데 시간이 오래 걸리는 경우 총 실행 시간이 구성된 값을 초과할 수 있습니다.
[00:00:00, 01:00:00] servertimeout
재산 묘사 지원되는 값 클라이언트 요청 속성 일치
DataScope string 쿼리의 데이터 범위입니다. 이 값은 쿼리가 모든 데이터에 적용되는지 아니면 핫 캐시에만 적용되는지를 결정합니다. All, HotCache또는 null query_datascope
MaxMemoryPerQueryPerNode long 쿼리에서 할당할 수 있는 최대 메모리 양(바이트)입니다. [, 단일 노드의 총 RAM% 50개 ] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long 쿼리 연산자 할당할 수 있는 최대 메모리 양(바이트)입니다. [1, Min(32212254720, 50% 단일 노드의 총 RAM)] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int 쿼리 실행을 팬아웃할 각 노드의 스레드 비율입니다. %100으로 설정하면 Eventhouse는 각 노드의 모든 CPU를 할당합니다. 예를 들어 Azure D14_v2 노드에 배포된 eventhouse의 CPU 16개. [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int 쿼리 실행을 팬아웃할 Eventhouse의 노드 비율입니다. MaxFanoutThreadsPercentage유사한 방식으로 함수입니다. [1, 100] query_fanout_nodes_percent
MaxResultRecords long 요청이 호출자에게 반환할 수 있는 최대 레코드 수이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 이벤트 하우스 간 참조가 있는 결과와 같은 하위 쿼리의 중간 결과에는 적용되지 않습니다. [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long 요청이 호출자에게 반환될 수 있는 최대 데이터 크기(바이트)이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 이벤트 하우스 간 참조가 있는 결과와 같은 하위 쿼리의 중간 결과에는 적용되지 않습니다. [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan 요청의 최대 기간입니다.
참고 사항:
1) 실행 시간기본 제한 위에 더 많은 제한을 배치하지만 확장하지 않는 데 사용할 수 있습니다.
2) 시간 제한 처리는초의 해상도가 아니라
분 동안 쿼리가 실행되지 않도록 설계되었습니다.
3) 클라이언트에서 페이로드를 다시 읽는 데 걸리는 시간은 시간 제한의 일부로 처리되지 않습니다. 호출자가 스트림에서 데이터를 가져오는 빈도에 따라 달라집니다.
4) 실행을 중단하는 데 시간이 오래 걸리는 경우 총 실행 시간이 구성된 값을 초과할 수 있습니다.
[00:00:00, 01:00:00] servertimeout

메모

정의되지 않았거나 null정의된 제한은 default 워크로드 그룹의 요청 제한 정책에서 가져옵니다.

CPU 리소스 사용량

쿼리는 클러스터 내의 모든 CPU 리소스를 사용할 수 있습니다. 기본적으로 여러 쿼리가 동시에 실행되는 경우 시스템은 공정한 라운드 로빈 접근 방식을 사용하여 리소스를 배포합니다. 이 전략은 임시 쿼리를 사용하여 고성능을 달성하는 데 최적입니다.

쿼리는 Eventhouse 내의 모든 CPU 리소스를 사용할 수 있습니다. 기본적으로 여러 쿼리가 동시에 실행되는 경우 시스템은 공정한 라운드 로빈 접근 방식을 사용하여 리소스를 배포합니다. 이 전략은 임시 쿼리를 사용하여 고성능을 달성하는 데 최적입니다.

그러나 특정 쿼리에 할당된 CPU 리소스를 제한하려는 시나리오가 있습니다. 예를 들어 더 높은 대기 시간을 수용할 수 있는 백그라운드 작업을 실행하는 경우입니다. 요청 제한 정책은 분산 하위 쿼리 작업을 실행할 때 사용할 스레드 또는 노드의 낮은 비율을 지정할 수 있는 유연성을 제공합니다. 기본 설정은 100%.

default 워크로드 그룹

default 워크로드 그룹에는 기본적으로 정의된 다음 정책이 있습니다. 이 정책은 변경할 수 있습니다.

{
  "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"
  }
}

메모

  • default 워크로드 그룹의 제한을 정의하고null 값이 아닌 값을 가져야 합니다.
  • default 워크로드 그룹의 모든 제한은 IsRelaxabletrue설정됩니다.
  • 명령 및 같은 쿼리 명령에서 수집하는 같은 작업 그룹 내의 특정 명령 유형에 대해 요청 제한이 해제됩니다. 이러한 명령이 기본이 아닌 워크로드 그룹에 할당되면 정책에 지정된 요청 제한이 적용됩니다.

본보기

다음 JSON은 사용자 지정 요청 제한 정책 개체를 나타냅니다.

{
  "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"
  }
}