From ce2ea1d675649a7dd1849deabdf57690d6992182 Mon Sep 17 00:00:00 2001 From: luo rixin Date: Thu, 24 Sep 2020 21:17:36 +0800 Subject: [PATCH] common/options: remove unavailable values of osd_op_queue Signed-off-by: luo rixin --- doc/rados/configuration/osd-config-ref.rst | 148 ++++++--------------- src/common/options.cc | 7 +- 2 files changed, 46 insertions(+), 109 deletions(-) diff --git a/doc/rados/configuration/osd-config-ref.rst b/doc/rados/configuration/osd-config-ref.rst index 344599fe7aa..9b2d38df291 100644 --- a/doc/rados/configuration/osd-config-ref.rst +++ b/doc/rados/configuration/osd-config-ref.rst @@ -384,22 +384,16 @@ Operations :Description: This sets the type of queue to be used for prioritizing ops in the OSDs. Both queues feature a strict sub-queue which is dequeued before the normal queue. The normal queue is different - between implementations. The original PrioritizedQueue (``prio``) uses a - token bucket system which when there are sufficient tokens will - dequeue high priority queues first. If there are not enough - tokens available, queues are dequeued low priority to high priority. - The WeightedPriorityQueue (``wpq``) dequeues all priorities in - relation to their priorities to prevent starvation of any queue. - WPQ should help in cases where a few OSDs are more overloaded - than others. The new mClock based OpClassQueue - (``mclock_opclass``) prioritizes operations based on which class + between implementations. The WeightedPriorityQueue (``wpq``) + dequeues operations in relation to their priorities to prevent + starvation of any queue. WPQ should help in cases where a few OSDs + are more overloaded than others. The new mClockQueue + (``mclock_scheduler``) prioritizes operations based on which class they belong to (recovery, scrub, snaptrim, client op, osd subop). - And, the mClock based ClientQueue (``mclock_client``) also - incorporates the client identifier in order to promote fairness - between clients. See `QoS Based on mClock`_. Requires a restart. + See `QoS Based on mClock`_. Requires a restart. :Type: String -:Valid Choices: prio, wpq, mclock_opclass, mclock_client +:Valid Choices: wpq, mclock_scheduler :Default: ``wpq`` @@ -558,7 +552,7 @@ based on `the dmClock algorithm`_. This algorithm allocates the I/O resources of the Ceph cluster in proportion to weights, and enforces the constraints of minimum reservation and maximum limitation, so that the services can compete for the resources fairly. Currently the -*mclock_opclass* operation queue divides Ceph services involving I/O +*mclock_scheduler* operation queue divides Ceph services involving I/O resources into following buckets: - client op: the iops issued by client @@ -597,12 +591,6 @@ competitor "1". In the case of client ops, it is not clamped by the limit setting, so it can make use of all the resources if there is no recovery ongoing. -Along with *mclock_opclass* another mclock operation queue named -*mclock_client* is available. It divides operations based on category -but also divides them based on the client making the request. This -helps not only manage the distribution of resources spent on different -classes of operations but also tries to ensure fairness among clients. - CURRENT IMPLEMENTATION NOTE: the current experimental implementation does not enforce the limit values. As a first approximation we decided not to prevent operations that would otherwise enter the operation @@ -689,124 +677,76 @@ mClock and dmClock experiments in the ceph-devel mailing list. :Default: 8 MiB -``osd op queue mclock client op res`` +``osd mclock scheduler client res`` -:Description: the reservation of client op. +:Description: IO proportion reserved for each client (default). -:Type: Float -:Default: 1000.0 +:Type: Unsigned Integer +:Default: 1 -``osd op queue mclock client op wgt`` +``osd mclock scheduler client wgt`` -:Description: the weight of client op. +:Description: IO share for each client (default) over reservation. -:Type: Float -:Default: 500.0 +:Type: Unsigned Integer +:Default: 1 -``osd op queue mclock client op lim`` +``osd mclock scheduler client lim`` -:Description: the limit of client op. +:Description: IO limit for each client (default) over reservation. -:Type: Float -:Default: 1000.0 +:Type: Unsigned Integer +:Default: 999999 -``osd op queue mclock osd subop res`` +``osd mclock scheduler background recovery res`` -:Description: the reservation of osd subop. +:Description: IO proportion reserved for background recovery (default). -:Type: Float -:Default: 1000.0 +:Type: Unsigned Integer +:Default: 1 -``osd op queue mclock osd subop wgt`` +``osd mclock scheduler background recovery wgt`` -:Description: the weight of osd subop. +:Description: IO share for each background recovery over reservation. -:Type: Float -:Default: 500.0 +:Type: Unsigned Integer +:Default: 1 -``osd op queue mclock osd subop lim`` +``osd mclock scheduler background recovery lim`` -:Description: the limit of osd subop. +:Description: IO limit for background recovery over reservation. -:Type: Float -:Default: 0.0 +:Type: Unsigned Integer +:Default: 999999 -``osd op queue mclock snap res`` +``osd mclock scheduler background best effort res`` -:Description: the reservation of snap trimming. +:Description: IO proportion reserved for background best_effort (default). -:Type: Float -:Default: 0.0 +:Type: Unsigned Integer +:Default: 1 -``osd op queue mclock snap wgt`` +``osd mclock scheduler background best effort wgt`` -:Description: the weight of snap trimming. +:Description: IO share for each background best_effort over reservation. -:Type: Float -:Default: 1.0 +:Type: Unsigned Integer +:Default: 1 -``osd op queue mclock snap lim`` +``osd mclock scheduler background best effort lim`` -:Description: the limit of snap trimming. +:Description: IO limit for background best_effort over reservation. -:Type: Float -:Default: 0.001 - - -``osd op queue mclock recov res`` - -:Description: the reservation of recovery. - -:Type: Float -:Default: 0.0 - - -``osd op queue mclock recov wgt`` - -:Description: the weight of recovery. - -:Type: Float -:Default: 1.0 - - -``osd op queue mclock recov lim`` - -:Description: the limit of recovery. - -:Type: Float -:Default: 0.001 - - -``osd op queue mclock scrub res`` - -:Description: the reservation of scrub jobs. - -:Type: Float -:Default: 0.0 - - -``osd op queue mclock scrub wgt`` - -:Description: the weight of scrub jobs. - -:Type: Float -:Default: 1.0 - - -``osd op queue mclock scrub lim`` - -:Description: the limit of scrub jobs. - -:Type: Float -:Default: 0.001 +:Type: Unsigned Integer +:Default: 999999 .. _the dmClock algorithm: https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Gulati.pdf diff --git a/src/common/options.cc b/src/common/options.cc index 286d5bf7719..12bd715a9f9 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -2950,13 +2950,10 @@ std::vector