Page MenuHomePhabricator

Support daemon autoscaling in libphutil
ClosedPublic

Authored by epriestley on Feb 23 2015, 12:06 AM.
Tags
None
Referenced Files
F13084550: D11859.diff
Wed, Apr 24, 11:08 PM
Unknown Object (File)
Sat, Apr 6, 6:10 AM
Unknown Object (File)
Fri, Apr 5, 3:26 PM
Unknown Object (File)
Mar 21 2024, 1:43 AM
Unknown Object (File)
Mar 17 2024, 5:03 AM
Unknown Object (File)
Feb 23 2024, 11:39 PM
Unknown Object (File)
Feb 15 2024, 4:51 PM
Unknown Object (File)
Feb 11 2024, 3:30 AM
Subscribers

Details

Summary

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.

Test Plan
  • Ran phd debug --autoscale intensity.
  • Saw pool scale up to 8 daemons on odd minutes, launching one new daemon every few seconds, then stabilize.
  • Saw the pool scale down to 1 daemon at 15 seconds past the minute on even minutes. The pool would normally scale less abruptly, but the busy-ness function for the HighIntensity daemon means this is the expected behavior.

Diff Detail

Repository
rPHU libphutil
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Support daemon autoscaling in libphutil.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.
btrahan edited edge metadata.
This revision is now accepted and ready to land.Feb 23 2015, 6:04 PM
This revision was automatically updated to reflect the committed changes.