While Rails Autoscale works great out-of-the-box for most apps, these settings let you fine-tune you autoscaling behavior.
By default, Rails Autoscale will scale up or down by one dyno at a time. It will continue to do this until queue time has settled between the upscale and downscale thresholds.
If your app receives sudden bursts of traffic and needs to scale up as quickly as possible, you might want to scale up by multiple dynos at a time. You can scale up by as many dynos as you want, but keep in mind you’ll never be autoscaled beyond your autoscale range.
Scaling by multiple dynos at a time is one way to upscale faster, but you can so something similar by shortening the time between subsequent upscales.
Upscaling is always triggered immediately when your upscale threshold is breached. If your does not quickly recover (queue times remain above your threshold), subsequent upscales will be triggered.
Of course it takes some time for new dynos to start, so no app will recover immediately. With that in mind, these options lets you control how rapidly these successive autoscaling events will be triggered.
Remember that the first upscale is always triggered immediately when the threshold is breached, regardless of the value used in this option.
This downscaling option is similar in that it controls the time between subsequent downscales, but it’s different in that it also controls the time before the first downscale event.
Downscaling is not triggered immediately when queue times drop below the downscale threshold because this could result in yo-yo autoscaling—rapidly autoscaling up and down. Rails Autoscale waits to downscale until queue times have settled and remain below the downscale threshold for 10 minutes, or whatever you specify here.
There’s no formula for determining the perfect autoscale settings. As with basic settings, the way to optimize your app is to start with the defaults and observe how your app is autoscaled.
If your app has trouble recovering quickly from slowdowns, you might benefit from scaling up by multiple dynos at a time.
If you want to optimize for cost savings, you might want to downscale faster by shortening the time between downscale events.