From 4e5e41deeaf91c885773d90e6f94da60f6d4efd3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 18 Apr 2014 13:50:11 -0700 Subject: [PATCH] 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) --- src/common/config_opts.h | 1 + src/osd/ReplicatedPG.cc | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index b4f3d9f721622..c932f00121c8b 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -413,6 +413,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 233bc2cd514ca..d3b2696b6bc94 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1701,7 +1701,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; -- 2.39.5