. NET Файл Core 3.1 работает медленно - PullRequest
0 голосов
/ 27 мая 2020

У меня. NET Core 3.1 API, работающий внутри Linux docker контейнера на B2S Azure VM.

Мой API настроен на добавление ResponseCompression

services.Configure<GzipCompressionProviderOptions>(options =>
            {
                options.Level = CompressionLevel.Optimal;
            });

            services.AddResponseCompression(options =>
            {
                options.EnableForHttps = true;
                options.Providers.Add<GzipCompressionProvider>();
            });

У меня есть простая служба, которая получает несколько байтов из кеша памяти и возвращает их в виде файла моему клиенту.

[HttpGet("product/image/{id}"), Route("product/image")]
        public virtual IActionResult ProductImage([FromQuery] string id)
        {
            try
            {
                Service.GetProductImage(id, out byte[] content, out string contentType);
                return File(content, contentType);
            }
            catch (Exception ex)
            {
                return CatchException(ex);
            }
        }

Если я создаю Diagnostics.StopWatch для измерения задержки моего "GetProductImage" ", для запуска потребовалось 0 мсек.

Проблема в том, что когда я открываю браузер и пытаюсь выполнить GET для любого изображения, для его получения требуется около 1 секунды. Если я открываю 12 изображений одновременно, на каждое изображение уходит около 2 секунд. Каждый журнал моих затянутых мс из GetProductImage показывает 0 мсек времени. Каждое изображение имеет размер около 500 КБ.

Есть идеи, как мне увеличить эту производительность?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...