Learn More

Maximizing Autoscaling Responsiveness for Smooth App Performance

Autoscaling responsiveness is how quickly an autoscaler responds to a capacity issue. If you want to avoid slowdowns and timeouts, you want your autoscaling to be as responsive as possible.


How Quickly Does Judoscale… Scale?

The Judoscale adapter packages report metrics every 10 seconds and the autoscaling algorithm also runs every 10 seconds. This means Judoscale will send an upscale request to Heroku within 20 seconds of a verified queue time “breach” (queue time exceeds the threshold you’ve specified).

The “verified” part matters. Judoscale waits for complete 10-second metric buckets before making scaling decisions, because reacting to a partial bucket can cause incorrect scale responses. If queue time jumps sharply in the current bucket, the next scaling check may still be looking at the most recent complete bucket instead.

After sending the request to Heroku, it’ll take between 20 and 60 seconds (depending on the startup time for your app) for your new dyno to begin receiving requests. Note that performance, private, and shield dynos take longer to start up than standard dynos.

Can Autoscaling Prevent Every Timeout?

Unfortunately, no autoscaler can prevent all timeout errors when queue time spikes extremely fast. Even if Judoscale scaled you up instantly, new dynos take time to start and begin receiving traffic.

If steep spikes are common for your app, consider using a higher baseline number of dynos, adding more dynos per upscale event, or using schedules to add capacity before known traffic events.

What if My App Struggles to Recover From a Capacity Issue?

Apps that receive steep spikes in traffic should consider scaling up by multiple dynos at a time.

Screenshot: Upscale jumps control

Scaling up by more dynos per scale-event will help prevent traffic spikes from turning into prolonged slow-downs once the initial spike traffic is handled. Read more in Tuning Your Application.

If the app still struggles after scaling up, look for per-dyno outliers in your metrics. One dyno in a bad state can keep queue time high even when the overall dyno count looks sufficient. On Heroku, Dyno Sniper can automatically restart poorly performing dynos while the rest of the fleet keeps serving traffic.