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


Песочницы

Область применения: ✅Azure Data Explorer

Kusto может запускать песочницы для определенных потоков, которые должны выполняться в безопасной и изолированной среде. Примерами этих потоков являются пользовательские скрипты, которые выполняются с помощью подключаемого модуля Python или подключаемого модуля R.

Песочницы выполняются локально (то есть обработка выполняется близко к данным) без дополнительной задержки для удаленных вызовов.

Предварительные требования и ограничения

Параметры выполнения

  • Для выполнения изолированного оператора запроса может использоваться один или несколько песочниц.
    • Песочница используется только для одного запроса и удаляется после завершения этого запроса.
    • При перезапуске узла, например при обновлении службы, удаляются все работающие песочницы.
  • Каждый узел поддерживает предопределенное количество песочниц, готовых к выполнению входящих запросов.
    • После использования песочницы новый автоматически становится доступным для замены.
  • Если для обслуживания оператора запроса нет предварительно выделенных песочниц, он будет регулироваться до тех пор, пока новые песочницы не будут доступны. Дополнительные сведения см. в разделе об ошибках. Новое выделение песочницы может занять до 10–15 секунд на песочницу в зависимости от номера SKU и доступных ресурсов на узле данных.

Параметры песочницы

Некоторые параметры можно контролировать с помощью политики песочницы на уровне кластера для каждого вида песочницы.

  • Количество песочниц на узел: количество песочниц на узел ограничено.
    • Запросы, сделанные при отсутствии доступной песочницы, будут регулироваться.
  • Инициализация при запуске: если задано false значение (по умолчанию), песочницы инициализированы на узле, при первом выполнении запроса требуется песочница. В противном случае, если задано значение true, песочницы инициализированы в рамках запуска службы.
    • Это означает, что первое выполнение подключаемого модуля, использующего песочницы на узле, будет включать короткий период прогрева.
  • ЦП: максимальная скорость ЦП песочницы может использовать процессоры узла ограничено (по умолчанию — 50%).
    • Когда ограничение достигнуто, использование ЦП песочницы регулируется, но выполнение продолжается.
  • Память: максимальный объем ОЗУ песочницы может использовать ОЗУ узла.
    • Память по умолчанию для технологии Hyper-V составляет 1 ГБ, а для устаревших песочниц — 20 ГБ.
    • Достижение предела приводит к прекращению песочницы и ошибке выполнения запроса.

Ограничения песочницы

  • Сеть: песочница не может взаимодействовать с любым ресурсом на виртуальной машине или за ее пределами.
    • Песочница не может взаимодействовать с другой песочницей.

Примечание.

Ресурсы, используемые с песочницей, зависят не только от размера обрабатываемых данных в рамках запроса, но и от логики, которая выполняется в песочнице, и реализации библиотек, используемых им. Например, для python подключаемых модулей последний означает предоставленный пользователем скрипт и r библиотеки Python или R, которые он использует во время выполнения.

ошибки

ErrorCode Состояние Сообщение Потенциальная причина
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) Изолированный запрос был прерван из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно На целевом узле нет доступных песочниц. Новые песочницы должны стать доступными через несколько секунд
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) Песочницы типа "{kind}" еще не инициализированы Политика песочницы недавно изменилась. Новые песочницы, подчиняющиеся новой политике, будут доступны через несколько секунд.
InternalServiceError (520) Изолированный запрос был прерван из-за сбоя при инициализации песочниц Непредвиденная ошибка инфраструктуры.

Размеры виртуальных машин, поддерживающие вложенную виртуализацию

В следующей таблице перечислены все современные размеры виртуальных машин, поддерживающие технологию песочницы Hyper-V.

Имя Категория
Standard L8s_v3 Оптимизированные для операций в хранилище
Standard L16s_v3 Оптимизированные для операций в хранилище
Standard_L8as_v3 Оптимизированные для операций в хранилище
Standard_L16as_v3 Оптимизированные для операций в хранилище
Standard_E8as_v5 Оптимизированные для операций в хранилище
Standard_E16as_v5 Оптимизированные для операций в хранилище
Standard_E8s_v4 Оптимизированные для операций в хранилище
Standard_E16s_v4 Оптимизированные для операций в хранилище
Standard_E8s_v5 Оптимизированные для операций в хранилище
Standard_E16s_v5 Оптимизированные для операций в хранилище
Standard_E2ads_v5 Оптимизированные для вычислений
Standard_E4ads_v5 Оптимизированные для вычислений
Standard_E8ads_v5 Оптимизированные для вычислений
Standard_E16ads_v5 Оптимизированные для вычислений
Standard_E2d_v4 Оптимизированные для вычислений
Standard_E4d_v4 Оптимизированные для вычислений
Standard_E8d_v4 Оптимизированные для вычислений
Standard_E16d_v4 Оптимизированные для вычислений
Standard_E2d_v5 Оптимизированные для вычислений
Standard_E4d_v5 Оптимизированные для вычислений
Standard_E8d_v5 Оптимизированные для вычислений
Standard_E16d_v5 Оптимизированные для вычислений
Standard_D32d_v4 Оптимизированные для вычислений