Comment 0 for bug 1784753

Revision history for this message
Tim Burke (1-tim-z) wrote :

Background daemons have two main ways to make sure they don't hog resources:

* sleep between cycles (with something like interval or the deprecated run_pause) and
* ratelimiting within a cycle (with *_per_second settings).

The former prevents busy loops in a mostly empty cluster but causes square waves where the process hammers disks as fast as it can, then leaves them idle a while, then hammers them, leaves them idle, etc.

Ratelimiting is nice because it smooths that usage out -- instead of eating all the available I/O 50% of the time, the process can use ~50% of available I/O all the time, keeping the same cycle time but leaving overhead available for things like client requests.

Currently, however, only the following background daemons support ratelimiting:

* object-auditor
* object-updater
* container-auditor
* container-updater
* account-auditor

It would be nice to have ratelimiting available for:

* object-reconstructor
* object-replicator
* container-reconciler
* container-replicator
* container-sharder
* account-replicator

Maybe it'd be nice to have for object-expirer and account-reaper, too? Not sure.