]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Disable sleep times for all best effort clients of mclock 39997/head
authorSridhar Seshasayee <sseshasa@redhat.com>
Thu, 4 Mar 2021 13:02:01 +0000 (18:32 +0530)
committerSridhar Seshasayee <sseshasa@redhat.com>
Thu, 18 Mar 2021 17:25:58 +0000 (22:55 +0530)
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 <sseshasa@redhat.com>
(cherry picked from commit 18fab9054ae730ce68dfad1a7e1f4f7da3eb5e01)

src/osd/OSD.cc
src/osd/scheduler/mClockScheduler.cc

index c53ab0a08564c0e3311703d7e4ff0d5e85aa7de9..fbc1b540dfd54278cf3a154a84fb059b209e68b8 100644 (file)
@@ -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);
index d2a4de935ef5f6e56dd15e285d9df7dc8c22c89b..080dec541c0c536cbb2b74856e7ec066acac9283 100644 (file)
@@ -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);
 }