Я пытаюсь понять, как работает масштабирование с использованием функций azure. Мы тестировали приложение, которое генерирует 88 сообщений в очереди хранения, что запускает нашу функцию. Функция написана в С#. Функция загружает файл, выполняет некоторую обработку на нем (в конце концов он будет опубликован, но мы не делаем этого для тестирования). Для выполнения каждой функции требуется около 30 секунд (всего ~ 2500 секунд обработки). Для целей тестирования мы зацикливаем это 10 раз.
Наша идеальная ситуация состояла бы в том, что после некоторого потепления Azure автоматически масштабирует функцию, чтобы обрабатывать сообщения наиболее целесообразным образом. Использование какого-то алгоритма с учетом времени разворота и т.д. Или просто масштабировать до количества сообщений в отставании с какой-то кепкой.
Как это работает? Мы никогда не могли получить более 7 единиц потребления. И, как правило, занимает около 45 минут для обработки очереди сообщений.
Пара других задач масштабируемости... Наша функция - интенсивная работа с памятью, как распределяется память между масштабированными экземплярами функции? Я прошу, потому что мы видим некоторые ошибки в памяти, которые мы обычно не видим. Weve настраивает максимальную память для функции (1536MB). Увидев около 2,5% операций при ошибке из-за ошибки памяти
Заранее спасибо, действительно хотели сделать эту работу, так как это позволило бы нам переместить большую часть нашей работы с выделенных оконных виртуальных машин на EC2 и на функции Azure.