From 4413670d784efc2392359f0f22bca7c9056188f4 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 --- 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 a065a772f9b1..2490244b0c07 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -469,6 +469,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 b64ed390ab91..3002324a39cd 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -2446,7 +2446,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.47.3