【问题标题】:.net core 3.1 docker container extremely slow response.net core 3.1 docker容器响应极慢
【发布时间】:2020-10-10 00:24:38
【问题描述】:

我们有一些 API 托管在 AWS Elastic beanstalk 中。我们决定将所有这些应用程序组合在单个 docker 容器下的单个 EC2 实例中,以隔离它们的环境。 设置后,我遇到了性能问题。响应时间极慢(~58 秒)

我查看了 docker stats,但内存没有占用,CPU 没有峰值,那里似乎一切正常。这不是我们已经使用该应用程序一年多的新应用程序。

让我分享一下我的 docker 文件内容以及我构建它的方式以及我用来运行图像的命令。

EC2 实例: t3a.small in 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-subnet 网络使用桥接模式驱动程序。

在同一台机器上,有 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;
}

我不知道可以做些什么来提高速度。我怀疑这与网络有关,但还不够确定。

【问题讨论】:

    标签: docker asp.net-core nginx amazon-ec2


    【解决方案1】:

    问题已被追踪。 我的 API 托管在 us-east-1 区域,而我试图访问 ap-southeast-1 区域中的数据,因为存在延迟。我将在单个区域中移动所有资源,以减少成本和延迟问题。

    【讨论】:

      猜你喜欢
      • 2020-07-25
      • 2020-07-11
      • 2017-08-09
      • 2015-07-08
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多