From 19bc35119e059797257f1a3ded993e14f3a02823 Mon Sep 17 00:00:00 2001 From: Sridhar Seshasayee Date: Thu, 4 Mar 2021 18:32:01 +0530 Subject: [PATCH] osd: Disable sleep times for all best effort clients of mclock If mClockScheduler is scheduling IOs then the various sleep options for the best effort clients of mclock viz. pg_delete, snaptrim and scrub are disabled so as to not affect the QoS being applied. Signed-off-by: Sridhar Seshasayee (cherry picked from commit 18fab9054ae730ce68dfad1a7e1f4f7da3eb5e01) --- src/osd/OSD.cc | 24 ++++++++++++++++++++++++ src/osd/scheduler/mClockScheduler.cc | 15 +++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index c53ab0a08564c..fbc1b540dfd54 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -9947,6 +9947,15 @@ void OSD::handle_conf_change(const ConfigProxy& conf, std::lock_guard l{osd_lock}; if (changed.count("osd_max_backfills") || + changed.count("osd_delete_sleep") || + changed.count("osd_delete_sleep_hdd") || + changed.count("osd_delete_sleep_ssd") || + changed.count("osd_delete_sleep_hybrid") || + changed.count("osd_snap_trim_sleep") || + changed.count("osd_snap_trim_sleep_hdd") || + changed.count("osd_snap_trim_sleep_ssd") || + changed.count("osd_snap_trim_sleep_hybrid") || + changed.count("osd_scrub_sleep") || changed.count("osd_recovery_sleep") || changed.count("osd_recovery_sleep_hdd") || changed.count("osd_recovery_sleep_ssd") || @@ -9978,6 +9987,21 @@ void OSD::handle_conf_change(const ConfigProxy& conf, cct->_conf.set_val("osd_recovery_sleep_hdd", std::to_string(0)); cct->_conf.set_val("osd_recovery_sleep_ssd", std::to_string(0)); cct->_conf.set_val("osd_recovery_sleep_hybrid", std::to_string(0)); + + // Disable delete sleep + cct->_conf.set_val("osd_delete_sleep", std::to_string(0)); + cct->_conf.set_val("osd_delete_sleep_hdd", std::to_string(0)); + cct->_conf.set_val("osd_delete_sleep_ssd", std::to_string(0)); + cct->_conf.set_val("osd_delete_sleep_hybrid", std::to_string(0)); + + // Disable snap trim sleep + cct->_conf.set_val("osd_snap_trim_sleep", std::to_string(0)); + cct->_conf.set_val("osd_snap_trim_sleep_hdd", std::to_string(0)); + cct->_conf.set_val("osd_snap_trim_sleep_ssd", std::to_string(0)); + cct->_conf.set_val("osd_snap_trim_sleep_hybrid", std::to_string(0)); + + // Disable scrub sleep + cct->_conf.set_val("osd_scrub_sleep", std::to_string(0)); } else { service.local_reserver.set_max(cct->_conf->osd_max_backfills); service.remote_reserver.set_max(cct->_conf->osd_max_backfills); diff --git a/src/osd/scheduler/mClockScheduler.cc b/src/osd/scheduler/mClockScheduler.cc index d2a4de935ef5f..080dec541c0c5 100644 --- a/src/osd/scheduler/mClockScheduler.cc +++ b/src/osd/scheduler/mClockScheduler.cc @@ -386,6 +386,21 @@ void mClockScheduler::set_global_recovery_options() cct->_conf.set_val("osd_recovery_sleep_ssd", std::to_string(0)); cct->_conf.set_val("osd_recovery_sleep_hybrid", std::to_string(0)); + // Disable delete sleep + cct->_conf.set_val("osd_delete_sleep", std::to_string(0)); + cct->_conf.set_val("osd_delete_sleep_hdd", std::to_string(0)); + cct->_conf.set_val("osd_delete_sleep_ssd", std::to_string(0)); + cct->_conf.set_val("osd_delete_sleep_hybrid", std::to_string(0)); + + // Disable snap trim sleep + cct->_conf.set_val("osd_snap_trim_sleep", std::to_string(0)); + cct->_conf.set_val("osd_snap_trim_sleep_hdd", std::to_string(0)); + cct->_conf.set_val("osd_snap_trim_sleep_ssd", std::to_string(0)); + cct->_conf.set_val("osd_snap_trim_sleep_hybrid", std::to_string(0)); + + // Disable scrub sleep + cct->_conf.set_val("osd_scrub_sleep", std::to_string(0)); + // Apply the changes cct->_conf.apply_changes(nullptr); } -- 2.39.5