Оптимизация производительности Azure Integration Runtime
Потоки данных выполняются в кластерах Spark, которые подготавливаются во время выполнения. Конфигурация используемого кластера определяется в среде выполнения интеграции (IR) действия. При определении среды выполнения интеграции необходимо учесть три фактора производительности: тип, размер и срок жизни кластера.
Дополнительные сведения о создании среды Integration Runtime см. в статье Среда выполнения интеграции.
Самый простой способ начать работу со средами выполнения интеграции для потоков данных — выбрать "Малый", "Средний" или "Большой" в средстве выбора "Объем вычислительных ресурсов". Сопоставления с конфигурациями кластера для этих размеров см. ниже.
Размер кластера
Потоки данных распределяют обработку данных по разным ядрам в кластере Spark для параллельного выполнения операций. Кластер Spark с большим количеством ядер увеличивает количество ядер в вычислительной среде. Больше ядер увеличивает мощность обработки потока данных. Как правило, самый простой способ сократить время обработки - увеличить размер кластера.
Размер кластера по умолчанию — четыре ядра драйвера и четыре рабочих ядра (небольшие). При обработке большого объема данных рекомендуется использовать большие кластеры. Ниже приведены варианты увеличения размера кластера.
Рабочие ядра | Ядра драйверов | Общее число ядер | Примечания. |
---|---|---|---|
4 | 4 | 8 | Небольшой |
8 | 8 | 16 | Средняя |
16 | 16 | 32 | Большой |
32 | 16 | 48 | |
64 | 16 | 80 | |
128 | 16 | 144 | |
256 | 16 | 272 |
Стоимость потоков данных вычисляется на основе рабочего времени виртуальных ядер. Это значит, что на цену влияет как размер кластера, так и фактор времени выполнения. При вертикальном увеличении масштаба стоимость минуты работы кластера увеличится, но общее время уменьшится.
Совет
Существует предел того, насколько размер кластера влияет на производительность потока данных. В зависимости от размера данных существует точка, после которой увеличение размера кластера ведет к снижению производительности. Например, если у вас больше ядер, чем секции данных, добавление дополнительных ядер не поможет. Рекомендуется начать с небольшого кластера и масштабировать его в соответствии с потребностями в производительности.
Настраиваемый раздел перетасовки
Поток данных делит данные на секции и преобразует его с помощью различных процессов. Если размер данных в секции больше, чем процесс может храниться в памяти, процесс завершается ошибкой OOM (вне памяти). Если поток данных содержит огромные объемы данных, имеющих соединения или агрегаты, может потребоваться изменить секции перетасовки путем добавочного изменения. Его можно настроить от 50 до 2000, чтобы избежать ошибок OOM. Пользовательские свойства вычислений в среде выполнения потока данных — это способ управления требованиями к вычислительным ресурсам. Имя свойства — это секции Shuffle и целочисленный тип. Эта настройка должна использоваться только в известных сценариях, в противном случае это может привести к ненужным сбоям потока данных.
При увеличении секций перетасовки убедитесь, что данные распределяются по всему ряду. Грубое число состоит в том, чтобы иметь приблизительно 1,5 ГБ данных на секцию. Если данные отклонены, увеличение секций "Перетасовка" не будет полезным. Например, если у вас есть 500 ГБ данных, должно работать значение от 400 до 500. По умолчанию количество секций для перемешивания ограничено значением 200, которое хорошо подойдет для приблизительно 300 ГБ данных.
- На портале ADF в разделе "Управление" выберите настраиваемое время выполнения интеграции и перейдите в режим редактирования.
- На вкладке "Время выполнения потока данных" перейдите в раздел " Пользовательские свойства вычислений".
- Выберите секции Shuffle в разделе "Имя свойства", значение входного значения, например 250, 500 и т. д.
Это можно сделать, изменив JSON-файл среды выполнения, добавив массив с именем свойства и значением после существующего свойства, например свойства очистки .
Срок жизни
По умолчанию каждое действие потока данных приводит к запуску нового кластера Spark на основе конфигурации Azure IR. Время запуска холодного кластера составляет несколько минут, и обработка данных не начнется, пока запуск не будет завершен. Если конвейеры содержат несколько последовательных потоков данных, можно установить значение срока жизни. Если задать значение срока жизни, кластер будет находиться в активном состоянии в течение определенного периода времени после завершения выполнения. Если новое задание начинает использовать ir во время TTL, оно будет повторно использовать существующий кластер и время запуска будет значительно сокращено. После выполнения второго задания кластер снова будет оставаться активным в течение срока жизни.
Однако если основная часть потоков данных выполняется параллельно, не рекомендуется включать TTL для среды IR, используемой для этих операций. Одновременно в одном кластере может выполняться только одно задание. Если имеется доступный кластер, но запущены два потока данных, то только один из них будет использовать этот активный кластер. Для второго задания будет запущен отдельный изолированный кластер.
Примечание.
Задать срок жизни невозможно, если используется среда выполнения интеграции с автоматическим разрешением (по умолчанию).
Связанный контент
Ознакомьтесь с другими статьями о производительности потоков данных.