Comment 1 for bug 1784753

Revision history for this message
Matthew Oliver (matt-0) wrote : Re: [Bug 1784753] [NEW] Add ratelimiting to more background daemons

There is also nice and ionice features or rather the
'nice_priority, ionice_priority and ionice_class. For completion of options
of how much they hog resources.. tho I guess in this case it's how well
they share.

On Wed, Aug 1, 2018 at 9:13 AM, Tim Burke <email address hidden> wrote:

> Public bug reported:
>
> 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.
>
> ** Affects: swift
> Importance: Undecided
> Status: New
>
> --
> You received this bug notification because you are subscribed to
> OpenStack Object Storage (swift).
> Matching subscriptions: <email address hidden>
> https://bugs.launchpad.net/bugs/1784753
>
> Title:
> Add ratelimiting to more background daemons
>
> Status in OpenStack Object Storage (swift):
> New
>
> Bug description:
> 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.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/swift/+bug/1784753/+subscriptions
>