Ограничивает ли Azure исходящие соединения - программирование

Ограничивает ли Azure исходящие соединения

Я запускаю виртуальную машину в Azure, на которой у меня есть служба, которая делает много исходящих вызовов http-клиентов. Через некоторое время (около 10 минут), когда услуга совершила около 5000-10000 звонков, она неожиданно начинает получать отказ от соединения как ответ на запросы.

При запуске одной и той же службы локально (используется во многих средах и компьютерах) она запускается без каких-либо ошибок. Мы используем класс HttpClient для запроса. Запросы выполняются в трех задачах, выполняемых одновременно.

Есть ли ограничения на количество исходящих соединений в Azure, о которых я должен знать?

4b9b3361

Ответ 2

Если вы используете Linux VM, выполните следующую команду, чтобы проверить ограничение на открытые файлы/сокеты

Ulimit - d cmd will give the value. The default is 1024 

Вы можете навсегда изменить это значение, добавив следующее в свой файл limits.conf

*soft nofile 65536
*hard nofile 65536

Ответ 3

Вот страница Azure для лимитов обслуживания. Он не указывает вызов за кадр времени, но устанавливает максимальное количество сетевых подключений для TCP как 500K, а ниже этой таблицы есть настройки для "Ограничений веб-приложений (веб-сайтов)", которые вы можете достичь.

Ответ 4

Существует ограничение на 500K TCP-соединений в виртуальной или веб-роли (за кулисами веб-роль также находится на виртуальной машине). Вы можете сослаться на ссылку ниже для Линии Azure

Похоже, ваше приложение сильно влияет на исходящие запросы. В таком случае вам может понадобиться отделить эту часть и использовать функции "Azure" Azure Functions, которая дает вам серверную архитектуру.

Ответ 5

Не зная Azure, интересно, проблема в том, что ваша виртуальная машина имеет ограничение на количество сокетов TCP - все эти (закрытые) TCP-соединения в состоянии FIN-WAIT могли исчерпать определенный предел для Azure, не устанавливается в других обстоятельствах. Это чистая спекуляция.