Поделиться через


Политика ограничения скорости запросов

Применимо: ✅Microsoft FabricAzure Data Explorer

Политика ограничения скорости запросов группы рабочей нагрузки позволяет ограничить количество одновременных запросов, классифицированных в группу рабочей нагрузки, на группу рабочей нагрузки или на участника.

Ограничения скорости применяются на уровне, определенном политики принудительного применения группы рабочих нагрузок.

Объект политики

Политика ограничения скорости запросов имеет следующие свойства:

Имя Поддерживаемые значения Описание
IsEnabled true, false Указывает, включена ли политика.
Размах WorkloadGroup, Principal Область применения ограничения.
LimitKind ConcurrentRequests, ResourceUtilization Тип ограничения скорости запроса.
Свойства Контейнер свойств Свойства ограничения скорости запроса.

Ограничение скорости одновременных запросов

Ограничение скорости запроса типа ConcurrentRequests включает следующее свойство:

Имя Тип Описание Поддерживаемые значения
MaxConcurrentRequests int Максимальное количество одновременных запросов. [0, 10000]

Заметка

  • Если у группы рабочих нагрузок нет указанного ограничения на максимальное число одновременных запросов, то по умолчанию используется максимальное значение 10000.

Если запрос превышает ограничение на максимальное число одновременных запросов:

  • Состояние запроса, представленноекоманд системной информации, будет .
  • Сообщение об ошибке будет содержать источник регулирования и превышение емкости.

В следующей таблице показаны несколько примеров одновременных запросов, превышающих максимальное ограничение, и сообщение об ошибке, возвращаемое этими запросами:

Сценарий Сообщение об ошибке
Регулирование .create table команды, которая была классифицирована в группу рабочих нагрузок default, которая имеет ограничение в 80 одновременных запросов в области группы рабочей нагрузки. Команда управления была прервана из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно. CommandType: TableCreate, емкость: 80, источник: RequestRateLimitPolicy/WorkloadGroup/default.
Регулируемый запрос, классифицируемый в группу рабочих нагрузок с именем MyWorkloadGroup, которая имеет ограничение в 50 одновременных запросов в области группы рабочей нагрузки. Запрос был прерван из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно. Емкость: 50, источник: RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup.
Регулируемый запрос, классифицируемый в группу рабочей нагрузки с именем MyWorkloadGroup, которая имеет ограничение в 10 одновременных запросов в области субъекта. Запрос был прерван из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно. Емкость: 10, источник: "RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
  • Код ответа HTTP будет 429. Вложенный код будет TooManyRequests.
  • Тип исключения будет QueryThrottledException для запросов и ControlCommandThrottledException для команд управления.

Заметка

  • Если любой из ограничений, определенных политикой емкости или политикой ограничения скорости запроса, будет регулироваться команда управления.
  • Политика емкости может ограничить частоту запросов, которые относятся к определенной категории, например приемов.

Ограничение скорости использования ресурсов

Ограничение скорости запроса типа ResourceUtilization включает следующие свойства:

Имя Тип Описание Поддерживаемые значения
ResourceKind ResourceKind Ресурс, который требуется ограничить.

Если ResourceKindTotalCpuSeconds, ограничение применяется на основе отчетов об использовании ЦП завершенных запросов после выполнения. Запросы, которые сообщают об использовании 0,005 секунд ЦП или ниже, не учитываются. Ограничение (MaxUtilization) представляет общее количество секунд ЦП, которые могут использоваться запросами в течение указанного периода времени (TimeWindow). Например, пользователь, выполняющий нерегламентированные запросы, может иметь ограничение в 1000 секунд ЦП в час. Если это ограничение превышено, последующие запросы будут регулироваться даже при одновременном запуске, так как совокупные секунды ЦП превысили определенный предел в течение скользящего периода.
RequestCount, TotalCpuSeconds
MaxUtilization long Максимальное количество ресурсов, которые можно использовать. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Скользящее окно времени, в течение которого применяется ограничение. [00:01:00, 1.00:00:00]

Если запрос превышает ограничение использования ресурсов:

  • Состояние запроса, представленноекоманд системной информации, будет .
  • Сообщение об ошибке будет содержать источник регулирования и превышение квоты . Например:

В следующей таблице показаны несколько примеров запросов, превышающих ограничение скорости использования ресурсов, и сообщение об ошибке, возвращаемое этими запросами:

Сценарий Сообщение об ошибке
Регулируемый запрос, классифицируемый в группу рабочей нагрузки с именем Automated Requests, которая имеет ограничение в 1000 запросов в час в области действия субъекта. Запрос был отклонен из-за превышения ограничений квоты. Ресурс: "RequestCount", квота: "1000", TimeWindow: "01:00:00", источник: "RequestRateLimitPolicy/WorkloadGroup/Automated Request/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
Регулируемый запрос, классифицируемый в группу рабочих нагрузок с именем Automated Requests, которая имеет ограничение в 2000 секунд ЦП в час в пределах группы рабочей нагрузки. Запрос был отклонен из-за превышения ограничений квоты. Ресурс: TotalCpuSeconds, квота: "2000", TimeWindow: "01:00:00", источник: "RequestRateLimitPolicy/WorkloadGroup/Автоматизированные запросы".
  • Код ответа HTTP будет 429. Вложенный код будет TooManyRequests.
  • Тип исключения будет QuotaExceededException.

Как согласованность влияет на ограничения скорости

При строгой согласованности ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU кластера и вычисляется как: Cores-Per-Node x 10. Например, кластер, настроенный с помощью узлов Azure D14_v2, где каждый узел имеет 16 виртуальных ядер, будет иметь ограничение по умолчанию 16 x 10 = 160.

При слабой согласованности эффективное ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU кластера и количества головок запросов и вычисляется как: Cores-Per-Node x 10 x Number-Of-Query-Heads. Например, кластер, настроенный с помощью D14_v2 Azure и 5 голов запросов, где каждый узел имеет 16 виртуальных ядер, будет иметь эффективное ограничение по умолчанию 16 x 10 x 5 = 800.

При строгой согласованности ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU дома событий и вычисляется как: Cores-Per-Node x 10. Например, в хранилище событий, настроенном с помощью узлов Azure D14_v2, где каждый узел имеет 16 виртуальных ядер, будет иметь ограничение по умолчанию 16 x 10 = 160.

При слабой согласованности эффективное ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU дома событий и количества головок запросов и вычисляется как: Cores-Per-Node x 10 x Number-Of-Query-Heads. Например, в хранилище событий, настроенном с помощью D14_v2 Azure и 5 голов запросов, где каждый узел имеет 16 виртуальных ядер, будет иметь действующее ограничение по умолчанию 16 x 10 x 5 = 800.

Дополнительные сведения см. в согласованности запросов.

Группа рабочей нагрузки default

Группа рабочей нагрузки default имеет следующую политику, определенную по умолчанию. Эту политику можно изменить.

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

Заметка

  • При изменении политики для группы рабочих нагрузок default необходимо определить ограничение для максимального числа одновременных запросов.

Примеры

Следующие политики позволяют выполнять следующие действия:

  • 500 одновременных запросов для группы рабочей нагрузки.
  • 25 одновременных запросов на участника.
  • 50 запросов на участника в час.
[
  {
    "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"
    }
  }
]

Следующие политики блокируют все запросы, классифицированные в группу рабочей нагрузки:

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