OPTION(mon_delta_reset_interval, OPT_DOUBLE, 10) // seconds of inactivity before we reset the pg delta to 0
OPTION(mon_osd_laggy_halflife, OPT_INT, 60*60) // (seconds) how quickly our laggy estimations decay
OPTION(mon_osd_laggy_weight, OPT_DOUBLE, .3) // weight for new 'samples's in laggy estimations
+OPTION(mon_osd_laggy_max_interval, OPT_INT, 300) // maximum value of laggy_interval in laggy estimations
OPTION(mon_osd_adjust_heartbeat_grace, OPT_BOOL, true) // true if we should scale based on laggy estimations
OPTION(mon_osd_adjust_down_out_interval, OPT_BOOL, true) // true if we should scale based on laggy estimations
OPTION(mon_osd_auto_mark_in, OPT_BOOL, false) // mark any booting osds 'in'
dout(10) << " not laggy, new xi " << xi << dendl;
} else {
if (xi.down_stamp.sec()) {
- int interval = ceph_clock_now(g_ceph_context).sec() - xi.down_stamp.sec();
- xi.laggy_interval =
+ int interval = ceph_clock_now(g_ceph_context).sec() - xi.down_stamp.sec();
+ if (g_conf->mon_osd_laggy_max_interval && (interval > g_conf->mon_osd_laggy_max_interval)) {
+ interval = g_conf->mon_osd_laggy_max_interval;
+ }
+ xi.laggy_interval =
interval * g_conf->mon_osd_laggy_weight +
xi.laggy_interval * (1.0 - g_conf->mon_osd_laggy_weight);
}