I have migrated our WebAPI .net 4.6.1 project to netcoreapp2.0 After load testing have below observations. Need feedback ?
Old stack : AWS App Load balancer (ALB) -> EC2 (c4.large) -> WebAPI .net 4.6.1 (IIS)
New Stack : AWS App Load Balancer (ALB) -> ECS docker (c4.large eq) -> WebAPI netcore 2.0 (Kestrel) on Linux
Refer above response times comparison for .net 4.6 Vs netcore 2.0 Web API hosted on linux ECS docker
Was looking out for tuning kestrel.Removed AWS ALB and started hitting directly on IP from docker. Tests with 50 RPS were completing.
Questions :
Has anybody observed AWS ALB not performing well when tied to docker and kestrel hosted WebAPI. As when I remove ALB things are good even till 80 RPS
Is putting Nginix in between ALB and Kestrel is good option and will help kestrel take more load and perform consistently on load.
Any other kestrel configuration that can be tweaked.
The slowness was not due to migrating to .netcore, but while migrating we had badly coded one middleware. After fixing that. Response times were comparable even on high load.