Мы выполняем большое моделирование в долгосрочных функциях Azure с использованием функции разветвления функций оркестровки.
Наше желаемое поведение состоит в том, чтобы функции числовых операций быстро обеспечивали обработку всех операций разветвления как можно быстрее. .
Вместо этого мы видим, что количество экземпляров возрастает до уровня, при котором достигается постоянная пропускная способность запросов активности и больше не будет расти. Несмотря на то, что это приводит к сбою невыполненных заданий, мы действительно хотим обработать эти задачи как можно быстрее.
Вместо того, чтобы, например, ~ 25 экземпляров обрабатывать всю нашу имитацию за 10 минут, мы хотим, чтобы 200 экземпляров завершились всего заболее 1 минуты.
Мы используем функции Azure 2.0 с расширениями Durable Functions.
Наш файл хоста находится ниже
{
"version": "2.0",
"extensions": {
"durableTask": {
"controlQueueBatchSize": 1,
"maxConcurrentActivityFunctions": 1,
"maxQueuePollingInterval": "00:00:02"
}
}
}
Мы установили maxConcurrentActivityFunctions
на 1 такойчто каждый экземпляр обрабатывает 1 задачу за раз, поскольку задачи интенсивно используют процессор.
Мы устанавливаем controlQueueBatchSize
в 1, чтобы каждый экземпляр выполнял только 1 задачу за раз, оставляя остаток в очереди. Мы обнаружили, что это приводит к увеличению количества экземпляров при масштабировании.
Любой совет о том, как получить функции Azure для предоставления большего количества узлов, был бы очень полезен.