Ref T7352. Autoscaling allows daemons (particularly, the taskmaster daemon) to scale up (launch more copies) or down (have some copies exit and not restart).
The primary goal is to improve resource utilization in the cluster. In particular:
- Instances with relatively little activity will automatically scale down to 1 taskmaster.
- Instances with a lot of activity can scale up to some higher-than-average ceiling.
In the cluster, compared to the current strategy of a fixed number of taskmasters per isntance, this uses less resources in all cases except when the daemons are fully loaded (when it uses the same amount of resources), and allows us to allocate resources much more efficiently.
This doesn't really impact normal installs much. They'll still get autoscaling, but the memory footprint of daemons isn't large enough to matter in most cases.
This (and the next diff) don't actually autoscale taskmasters yet, they just build all the autoscaling infrastructure.