Надежные функции Azure. Масштабирование не соответствует желаемому. - PullRequest
0 голосов
/ 25 октября 2019

Мы выполняем большое моделирование в долгосрочных функциях 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 для предоставления большего количества узлов, был бы очень полезен.

...