迁移到 netcoreapp 2.0 和 docker AWS ECS 后变慢
slowness after migrating to netcoreapp 2.0 and docker AWS ECS
我已经将我们的 WebAPI .net 4.6.1 项目迁移到 netcoreapp2.0
负载测试后有以下观察结果。需要反馈?
旧堆栈:AWS App Load balancer (ALB) -> EC2 (c4.large) -> WebAPI .net 4.6.1 (IIS)
新堆栈:AWS App Load Balancer (ALB) -> ECS docker (c4.large eq) -> Linux 上的 WebAPI netcore 2.0 (Kestrel)
请参阅上面关于 .net 4.6 与 netcore 2.0 Web API 托管在 linux ECS docker
上的响应时间比较
- 直到 20 RPS netcore2.0 更快。
- 在 20 RPS 之后 netcore 2.0 变慢并且尖锐。
- netcore 2.0 的测试在 40 RPS 后失败了。应用程序根本没有响应。
正在寻找调整 kestrel.Removed AWS ALB 并开始直接从 docker 访问 IP。 50 RPS 的测试正在完成。
问题:
是否有人观察到 AWS ALB 在绑定到 docker 和 kestrel 托管的 WebAPI 时表现不佳。当我删除 ALB 时,即使达到 80 RPS
一切都很好
将 Nginix 置于 ALB 和 Kestrel 之间是一个不错的选择,这将有助于 kestrel 承担更多负载并在负载上始终如一地执行。
可以调整的任何其他红隼配置。
缓慢不是因为迁移到 .netcore,而是在迁移时我们对一个中间件进行了错误的编码。修好之后。即使在高负载下,响应时间也相当。
我已经将我们的 WebAPI .net 4.6.1 项目迁移到 netcoreapp2.0 负载测试后有以下观察结果。需要反馈?
旧堆栈:AWS App Load balancer (ALB) -> EC2 (c4.large) -> WebAPI .net 4.6.1 (IIS)
新堆栈:AWS App Load Balancer (ALB) -> ECS docker (c4.large eq) -> Linux 上的 WebAPI netcore 2.0 (Kestrel)
请参阅上面关于 .net 4.6 与 netcore 2.0 Web API 托管在 linux ECS docker
上的响应时间比较- 直到 20 RPS netcore2.0 更快。
- 在 20 RPS 之后 netcore 2.0 变慢并且尖锐。
- netcore 2.0 的测试在 40 RPS 后失败了。应用程序根本没有响应。
正在寻找调整 kestrel.Removed AWS ALB 并开始直接从 docker 访问 IP。 50 RPS 的测试正在完成。
问题:
是否有人观察到 AWS ALB 在绑定到 docker 和 kestrel 托管的 WebAPI 时表现不佳。当我删除 ALB 时,即使达到 80 RPS
一切都很好
将 Nginix 置于 ALB 和 Kestrel 之间是一个不错的选择,这将有助于 kestrel 承担更多负载并在负载上始终如一地执行。
可以调整的任何其他红隼配置。
缓慢不是因为迁移到 .netcore,而是在迁移时我们对一个中间件进行了错误的编码。修好之后。即使在高负载下,响应时间也相当。