Отладка с помощью схемы физических заданий (предварительная версия) в портал Azure

Схема физического задания в портал Azure может помочь визуализировать ключевые метрики задания с помощью узла потоковой передачи в формате диаграммы или таблицы, например: использование ЦП, использование памяти, события ввода, идентификаторы секций и задержка водяного знака. Это помогает определить причину проблемы при устранении неполадок.

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

Важно!

Сейчас эта функция доступна в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

Определение параллелизма задания

Задание с параллелизацией — это масштабируемый сценарий в Stream Analytics, который может обеспечить лучшую производительность. Если задание не находится в параллельном режиме, скорее всего, у него есть определенные узкие места в его производительности. Важно определить, находится ли задание в параллельном режиме. Схема физических заданий предоставляет визуальный график для иллюстрации параллелизма заданий. На схеме физического задания при взаимодействии с данными между разными узлами потоковой передачи это задание является непараллелом, требующим дополнительного внимания. Например, схема непараллелий задания ниже:

Снимок экрана: непараллелевое задание на физической схеме.

Вы можете оптимизировать его для параллельного задания (как пример ниже), перезаписав запрос или обновив конфигурации входных и выходных данных с помощью симулятора схемы заданий в Visual Studio Code расширения ASA или редактора запросов в портал Azure. Дополнительные сведения см. в статье Оптимизация запросов с помощью симулятора схемы заданий (предварительная версия).

Снимок экрана: представление неравномерного распределения данных с физической схемой.

Ключевые метрики для определения узкого места параллельного задания

Задержка подложки и невыполненные входные события являются ключевыми метриками для определения производительности задания Stream Analytics. Если предельная задержка вашего задания постоянно увеличивается, а входные события остаются необработанными, это означает, что задание не в состоянии поддерживать скорость входных событий и своевременно создавать выходные данные. С точки зрения вычислительных ресурсов ресурсы ЦП и памяти используются на высоком уровне в этом случае.

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

Снимок экрана: ключевые метрики на узле на физической схеме.

Дополнительные сведения об определении метрик см. в статье Измерение имени узла Azure Stream Analytics.

Определение неравномерно распределенных событий ввода (неравномерное распределение данных)

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

Чтобы найти первопричину, откройте схему физических заданий в портал Azure. Выберите Диаграмма заданий (предварительная версия) в разделе Мониторинг и перейдите в раздел Физическая схема.

Снимок экрана: представление неравномерного распределения данных с физической схемой.

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

Снимок экрана: параметр тепловой карты задержки подложки.

После применения параметров тепловой карты, сделанных выше, вы получите узлы потоковой передачи с высокой задержкой подложки в левом верхнем углу. Затем можно проверить, имеют ли соответствующие узлы потоковой передачи значительно больше входных событий, чем другие. В этом примере потоковый узел#0 и streamingnode#1 имеют больше входных событий.

Снимок экрана: представление неравномерного распределения данных с физической схемой на тепловой карте задержки подложки.

Вы можете дополнительно проверить, сколько секций выделено узлам потоковой передачи по отдельности, чтобы узнать, вызвано ли больше входных событий большим количеством выделенных секций или какой-либо определенной секцией, имеющей больше входных событий. В этом примере все узлы потоковой передачи имеют две секции. Это означает, что streamingnode#0 и streamingnode#1 имеют определенную секцию, которая содержит больше входных событий, чем другие секции.

Чтобы определить, какая секция содержит больше входных событий, чем другие секции в streamingnode#0 и streamingnode#1, выполните следующие действия.

  • Выберите Добавить диаграмму в разделе диаграммы.
  • Добавление входных событий в метрику и идентификатор секции в разделитель
  • Нажмите кнопку Применить , чтобы открыть диаграмму входных событий.
  • Пометка streamingnode#0 и streamingnode#1 на схеме

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

Снимок экрана: события ввода, разделенные по секциям и узлам.

Какие дальнейшие действия можно предпринять?

Как показано в примере, секции (0 и 1) имеют больше входных данных, чем другие секции. Мы называем это неравномерное распределение данных. Узлы потоковой передачи, обрабатывающие секции с неравномерным распределением данных, должны потреблять больше ресурсов ЦП и памяти, чем другие. Этот дисбаланс приводит к снижению производительности и увеличению задержки водяного знака. Вы также можете проверить использование ЦП и памяти на двух узлах потоковой передачи на физической схеме. Чтобы устранить эту проблему, необходимо более равномерно разбить входные данные на разделы.

Определение причины перегрузки ЦП или памяти

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

  1. Откройте схему физических заданий, перейдите к портал Azure задания в разделе Мониторинг, выберите Схема заданий (предварительная версия) и перейдите в раздел Физическая схема. Физическая схема будет загружена, как показано ниже.

    Снимок экрана: обзор перегруженного задания ЦП и памяти.

  2. Проверьте использование ЦП и памяти на каждом узле потоковой передачи, чтобы узнать, слишком ли высокий уровень использования на всех узлах потоковой передачи. Если загрузка ЦП и su на всех узлах потоковой передачи высока (более 80 процентов), можно заключить, что на каждом узле потоковой передачи в этом задании обрабатывается большой объем данных.

    В приведенном выше случае загрузка ЦП составляет около 90 %, а использование памяти уже составляет 100 %. Это показывает, что у каждого узла потоковой передачи не достаточно ресурсов для обработки данных.

    Снимок экрана: перегруженный ЦП и память на всех узлах.

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

    В этом случае каждому узлу потоковой передачи выделено четыре раздела, которые слишком много выглядят для узла потоковой передачи.

Какие дальнейшие действия можно предпринять?

Рекомендуется уменьшить количество секций для каждого узла потоковой передачи, чтобы уменьшить объем входных данных. Вы можете удвоить количество единиц SU, выделенных каждому узлу потоковой передачи, до двух секций на узел, увеличив число узлов потоковой передачи с 8 до 16. Кроме того, можно в четыре раза повысить количество единиц, чтобы каждый узел потоковой передачи обрабатывал данные из одной секции.

Дополнительные сведения о связи между узлом потоковой передачи и единицей потоковой передачи см. в статье Общие сведения о единицах потоковой передачи и узле потоковой передачи.

Что делать, если предельная задержка по-прежнему увеличивается, когда один узел потоковой передачи обрабатывает данные одной секции? Перераспределите входные данные с использованием дополнительных секций, чтобы уменьшить объем данных в каждой секции. Дополнительные сведения см. в статье Использование повторного секционирования для оптимизации заданий Azure Stream Analytics.

Дальнейшие действия