Why does a new web dyno receive less requests during a load test?

Issue

A web dyno is added to a Private Spaces app while being under a load test. The new web dyno is expected to receive similar amount of requests as the existing web dynos. However, the new web dyno receives only limited number of requests.

Resolution

This can often be resolved by adding the Connection: close HTTP request header to each request from within your load testing tool's configuration. This causes the Heroku router to close the network connection after each response from the web dyno. This results in the load balancer rerouting the next request to a potentially different web dyno.

Otherwise, please configure the load testing tool to reconnect after each request.

With the construction of Private Spaces different from that of Common Runtime. the platform responds to load test differently. Namely, once a network connection from the load testing to tool to the Heroku app is established, all requests through the network connection are routed to the same web dyno. Some of load testing tools defaults to keep network connections to open and reuse it for repeated requests. This makes it unlikely for Heroku router to route requests to newly started web dynos.

Furthermore, when the load balancer for the app scales, IP addresses of the app may change. We recommend resolving the hostname through DNS when TTL for the previous look up expires. This makes sure that the load test fully makes use full capacity of the load balancer.

Ask on Stack Overflow

Engage with a community of passionate experts to get the answers you need

Ask on Stack Overflow

Heroku Support

Create a support ticket and our support experts will get back to you

Contact Heroku Support