【发布时间】:2018-06-23 17:27:53
【问题描述】:
我已将我们的 WebAPI .net 4.6.1 项目迁移到 netcoreapp2.0 负载测试后有以下观察结果。需要反馈吗?
旧堆栈:AWS 应用负载均衡器 (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)
请参阅上面托管在 linux ECS docker 上的 .net 4.6 与 netcore 2.0 Web API 的响应时间比较
- 直到 20 RPS netcore2.0 更快。
- 在 20 RPS 之后,netcore 2.0 速度变慢并出现尖峰。
- netcore 2.0 上的其他测试在 40 RPS 后失败。应用程序根本没有响应。
正在寻找调整 kestrel。移除 AWS ALB 并开始直接从 docker 访问 IP。 50 RPS 的测试正在完成。
问题:
有没有人观察到 AWS ALB 在绑定到 docker 和 kestrel 托管的 WebAPI 时表现不佳。当我删除 ALB 时,即使到 80 RPS,情况也很好
将 Nginix 置于 ALB 和 Kestrel 之间是一个不错的选择,这将有助于 Kestrel 承担更多负载并在负载时始终如一地执行。
任何其他可以调整的红隼配置。
【问题讨论】:
-
嗯...别忘了theregister.co.uk/2018/01/04/… ;)
-
不,我的测试是在 12 月 14 日进行的
标签: docker amazon-ec2 asp.net-core-2.0 amazon-ecs elastic-load-balancer