.NET Core API зависает при высокой нагрузке
Сейчас я на первом этапе оптимизации игрового бэк-энда. Я использую.NET Core 2.0, EF и MySQL. В настоящее время все это выполняется на локальной машине, используемой для разработки. Чтобы выполнить начальное нагрузочное тестирование, я написал небольшое консольное приложение, которое имитирует способ, которым конечный клиент будет использовать API. API размещается в IIS 8.5 на компьютере с Windows Server 2012R2. Приложение-симулятор запускается на 1-2 отдельных машинах.
Таким образом, все это работает очень хорошо для примерно 100-120 запросов / с. Загрузка ЦП на сервере составляет около 15-30, количество соединений на сервере MySQL в среднем составляет около 100 (я установил max_connections на 400, и оно никогда не приближается к этому значению). Время отклика в среднем намного меньше 100 мс. Однако, как только мы вводим цифры запросов немного выше, кажется, что система полностью останавливается с интервалами. Загрузка ЦП снижается до < 5, а время отклика одновременно возрастает. Так что это похоже на ситуацию с пробками. Во время остановки MySQL и исполняемый файл dotnet, кажется, "отдыхают".
Я понимаю, что я не где-то рядом с производственной установкой, экземпляр MySQL находится в dev и т. Д. Однако мне все еще интересно, что могло бы быть причиной этого. Есть идеи?