Skip to content

osd/scrub: disable high work-queue priority for high-prio scrubs#59641

Merged
ronen-fr merged 1 commit intoceph:mainfrom
ronen-fr:wip-rf-reduce-qprio
Sep 22, 2024
Merged

osd/scrub: disable high work-queue priority for high-prio scrubs#59641
ronen-fr merged 1 commit intoceph:mainfrom
ronen-fr:wip-rf-reduce-qprio

Conversation

@ronen-fr
Copy link
Contributor

@ronen-fr ronen-fr commented Sep 6, 2024

Prior to this fix, scrub-related messages were queued with one of four priorities:

  • if part of a regular, periodic scrub, the messages were queued with a very low priority (osd_scrub_priority. Default: 5), unless:

  • if the pool configuration specified a higher priority for the scrub, the messages were queued with that priority (the SCRUB_PRIORITY pool configuration option);

  • if a client operation was waiting for the scrub to complete, the messages were queued with the higher priority of the client ops (osd_client_op_priority. Default: 63);

  • and if the scrub was a high-priority one, e.g. initiated by the operator, the messages were queued with the highest priority (osd_requested_scrub_priority. Default: 120).

That last priority is too high, as scrubs should not have precedence over client ops. It is even more disruptive if the cluster is set to have only manually initiated scrubs, and all scrubs are high-priority ones.

This patch removes the osd_requested_scrub_priority. Instead, all scrub messages are queued according to the first three rules above.

Copy link
Contributor

@anthonyeleven anthonyeleven left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but I'm not qualified to approve the code

@github-actions
Copy link

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

Prior to this fix, scrub-related messages were queued with
one of four priorities:

- if part of a regular, periodic scrub, the messages were queued
  with a very low priority (osd_scrub_priority. Default: 5), unless:
- if the pool configuration specified a higher priority for the
  scrub, the messages were queued with that priority
  (the SCRUB_PRIORITY pool configuration option);
- if a client operation was waiting for the scrub to complete,
  the messages were queued with the higher priority of the
  client ops (osd_client_op_priority. Default: 63);
  and if the scrub was a high-priority one, e.g. initiated by the
  operator, the messages were queued with the highest priority
  (osd_requested_scrub_priority. Default: 120).

That last priority is too high, as scrubs should not have
precedence over client ops. It is even more disruptive if the
cluster is set to have only manually initiated scrubs, and
all scrubs are high-priority ones.

This patch removes the osd_requested_scrub_priority. Instead,
all scrub messages are queued according to the first three
rules above.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
@ronen-fr
Copy link
Contributor Author

Merging based on my Teuthology tests.
Only failure: https://tracker.ceph.com/issues/63198, which is an old recurring issue.

@ronen-fr ronen-fr merged commit 2d281f3 into ceph:main Sep 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants