Выполнение функции Azure в плане потребления мешает друг другу - PullRequest
0 голосов
/ 10 января 2019

У меня серьезная проблема с функциями Azure. Позвольте мне набросать мой сценарий.

У меня есть рабочая нагрузка для обработки входящих файлов данных в контейнере больших двоичных объектов. Используя BlobTrigger, моя функция обработки берет файл, обрабатывает его и удаляет его из контейнера. Все для одного файла в течение 2 минут после обработки в плане потребления.

Там все хорошо, так что я счастлив. Теперь я хочу увеличить масштаб и предложить +/- 10 таких партий в контейнере BLOB-объектов. Среда выполнения начинает выполнять их параллельно, поэтому все еще работает, как и ожидалось. Но потом: параллельное выполнение этих функций, по-видимому, замедляется, поэтому время обработки одной рабочей нагрузки превышает максимальное. время исполнения 10 минут! Это (более чем) фактор замедления в 5 раз, в зависимости от количества предлагаемых рабочих мест.

Я что, упускаю суть здесь? Для этого были построены функции или это просто игрушка или что-то в этом роде? Сейчас я прибегнул к аннотированию своей функции с помощью [Singleton], что полностью исключает какие-либо преимущества масштабирования здесь? Как же может быть, что «безсерверные» исполнительные блоки мешают друг другу?

Я очень озадачен, любые идеи будут с благодарностью.

1 Ответ

0 голосов
/ 10 января 2019

Вы должны изучить Алгоритм масштабирования функции Azure

Функция Azure, которая впервые запускается, выделяет небольшой экземпляр (1,5 ГБ) для обработки рабочей нагрузки. Чтобы понять требования к масштабированию, потребуется некоторое время, тогда только Azure ScaleController будет добавлять / удалять экземпляр. Для одного большого двоичного объекта экземпляр объемом 1,5 ГБ занимает 2 минуты, а для одного экземпляра большого объема (1,5 ГБ) будет использоваться один ресурс, и это займет время.

Я не вижу параметр размера пакета для триггера BLOB-объекта в host.josn, но я пробовал небольшой размер пакета и решил аналогичную проблему с ServiceBus.

Вы можете отправить дополнительную рабочую нагрузку на BLOB-объекты, а с помощью приложения Insight вы можете проверить время масштабирования функции Azure.

Надеюсь, вы уже проверили Проблемы с триггерами BLOB-объектов.

...