. net ядро ​​3.1 docker контейнер чрезвычайно медленный ответ - PullRequest
0 голосов
/ 19 июня 2020

У нас было несколько API, которые размещались в beanstalk AWS Elasti c. мы решили объединить все эти приложения в одном экземпляре EC2 в отдельном контейнере docker, чтобы изолировать их среды. После настройки я столкнулся с проблемой производительности. время отклика очень медленное (~ 58 сек c)

Я посмотрел статистику docker, но память не перегружается, процессор не зашкаливает, там все вроде нормально. Это не новое приложение, которое мы используем уже более года.

Позвольте мне поделиться содержимым моего файла docker, способом его создания и командой, которую я использовал для запуска изображений.

Экземпляр EC2: t3a.small в регионе us-east-1

Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
COPY release_dll/  /root/
WORKDIR /root/
ENV ASPNETCORE_URLS="http://*:80" 
EXPOSE 80
ENTRYPOINT ["dotnet", "vizdom.webapi.dll"]

Docker команда сборки: sudo docker build -t ss-webapi .

Docker команда запуска: sudo docker run -e ASPNETCORE_ENVIRONMENT=Dev -itd --network=ss-subnet --ip 172.18.0.3 ss-webapi

ss-su bnet сеть использует драйверы режима моста.

На той же машине существует обратный прокси nginx, который направляет запросы к отдельным контейнерам

Например:

location /webapi{
rewrite ^/webapi(.*) $1 break;
proxy_pass http://172.18.0.3:80;
proxy_set_header    Host                $host;
proxy_set_header    X-Real-IP            $remote_addr;
proxy_set_header    X-Forwarded-For        $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
}

Я не знаю, что можно сделать, чтобы повысить скорость. Я сомневаюсь, что это связано с сетью, но не уверен.

1 Ответ

0 голосов
/ 22 июня 2020

проблема обнаружена. Мой API размещен в регионе us-east-1, тогда как я пытался получить доступ к данным в регионе ap-southeast-1 из-за задержки. Я буду перемещать все ресурсы в один регион, чтобы уменьшить стоимость и задержку.

...