From: Sage Weil Date: Fri, 18 Apr 2014 20:50:11 +0000 (-0700) Subject: osd: throttle snap trimmming with simple delay X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=14ebe9b5ff3e053ba93e7deefd6aace0a202a01c;p=ceph.git osd: throttle snap trimmming with simple delay This is not particularly smart, but it is *a* knob that lets you make the snap trimmer slow down. It's a flow and a simple delay, so it is adjustable at runtime. Default is 0 (no change in behavior). Partial solution for #6278. Signed-off-by: Sage Weil (cherry picked from commit 4413670d784efc2392359f0f22bca7c9056188f4) --- diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 12c079fdc85d9..a11db1887d784 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -415,6 +415,7 @@ OPTION(osd_backfill_scan_max, OPT_INT, 512) OPTION(osd_op_thread_timeout, OPT_INT, 15) OPTION(osd_recovery_thread_timeout, OPT_INT, 30) OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1) +OPTION(osd_snap_trim_sleep, OPT_FLOAT, 0) OPTION(osd_scrub_thread_timeout, OPT_INT, 60) OPTION(osd_scrub_finalize_thread_timeout, OPT_INT, 60*10) OPTION(osd_remove_thread_timeout, OPT_INT, 60*60) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index f4a96cd555d25..735874ec4dd4c 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -2014,7 +2014,15 @@ ReplicatedPG::RepGather *ReplicatedPG::trim_object(const hobject_t &coid) void ReplicatedPG::snap_trimmer() { - lock(); + if (g_conf->osd_snap_trim_sleep > 0) { + utime_t t; + t.set_from_double(g_conf->osd_snap_trim_sleep); + t.sleep(); + lock(); + dout(20) << __func__ << " slept for " << t << dendl; + } else { + lock(); + } if (deleting) { unlock(); return;