У меня есть метод загрузки файлов в ASP.NET Core 2.2, основанный на HttpSys
, размещенном самостоятельно. У меня есть утилита нагрузочного тестирования, которая запускает 10 одновременных подключений и загружает большие файлы. Он отлично работает на моей рабочей станции (24 ядра процессора) - все 10 запросов выполняются параллельно.
Когда я помещаю его на небольшую виртуальную машину (2 ядра, Win Server 2012R2), он ставит в очередь 10 запросов, а затем выполняет их 2 одновременно.
Мой вопрос: как увеличить количество одновременно обрабатываемых запросов?
Я пытался ThreadPool.SetMinThreads(10, 10)
, но это не имеет значения.
Это мой код (упрощенно):
[HttpPut]
public async Task<ActionResult> Put(string partition, string guid)
{
var path = GetPath(partition, guid);
if (System.IO.File.Exists(path))
return Status(409, "File already exists");
using (var file = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, true))
{
await Request.Body.CopyToAsync(file);
return Status(200, "");
}
}