You could try setting a higher hard_limit to avoid the concurrency errors while you work on understanding what your soft_limit should be to optimize load balancing between Machines. You’ll also probably want to adjust your settings to real-world traffic once the app is released or in use. It can be a bit of trial and error and really depends on your workload.
This post offers some further tips for figuring out the best settings for concurrency:
You can look at Load Average. But Grafana will give you more detail, you can see memory and cpu utilization side-by-side.
In Grafana, if you look at the Fly Instance dashboard, you can see metrics per Machine, including individual memory and CPU data, and Fly Instance > Proxy will show concurrency info.