Autoscaling not distributing properly

Hey,

I am not able to get auto scaling to distribute properly. Here are my settings:

fly autoscale show
     Scale Mode: Standard
      Min Count: 6
      Max Count: 15
fly status
ID              PROCESS VERSION REGION  DESIRED STATUS  HEALTH CHECKS           RESTARTS        CREATED   
e16b8e5b        app     15      lhr     run     running 1 total, 1 passing      0               2m45s ago
8c758788        app     15      iad     run     running 1 total, 1 passing      0               2m45s ago
997f00d3        app     15      fra     run     running 1 total, 1 passing      0               4m23s ago
439c2b63        app     15      maa     run     running 1 total, 1 passing      0               5m32s ago
5f046226        app     15      fra     run     running 1 total, 1 passing      0               5m32s ago
a1f668b2        app     15      maa     run     running 1 total, 1 passing      0               8m4s ago 
fly regions list   
Region Pool: 
fra
hkg
iad
lhr
maa
sjc
Backup Region: 

I was under the impression that with standard, it would launch one in each region, and then scale up more based on traffic. Any ideas as to what’s going on?

I had a similar problem a while ago, do you think it’s the same thing? Autoscaling not distributing correctly

I’m currently comparing the performance around the world compared to render and while switching to fly + distributed postgres is better, it’s still pretty slow in some areas because they are not covered by an instance due to this issue.

Would love to get a benchmark when things are fixed. For example, I’m already seeing Frankfurt drop down from 700ms to less than 100 which is pretty cool, but California shot up from < 100 to 400 because there are no instances online from SJC

Autoscaling happens when there’s sustained (for a few minutes), significant, traffic to a region. This is based on your app’s soft limit.

Autoscaling is probably not being triggered by a monitoring system, but should be by real-world traffic.

The way regions currently work, we don’t guarantee app instances will be placed in all the specified locations. It’s a list of regions where Fly may put instances.

Right now, we don’t support a “minimum per region” setting. The only way to achieve this is via Anchor scaling (incompatible with autoscaling) or if you use --max-per-region with your fly scale count (fixed count, will not autoscale).

If this is only for benchmarking purposes: the best way would be to set a fixed count with a --max-per-region so you can get your instances exactly where you want them.

If this is for real-world traffic: you can tweak your soft limit so autoscaling is triggered more often.

1 Like

I see, thanks for the clarification!

Hi @nahtnam,

Just letting you know we just tracked down an internal bug in the autoscaling service that was causing scaling events to not get triggered properly, sorry for the inconvenience. It should be working correctly now so please give it another try!

1 Like