From: Sage Weil Date: Tue, 15 Sep 2015 20:26:54 +0000 (-0400) Subject: osd: scale mon report interval with timeout backoff X-Git-Tag: v10.0.1~26^2~58 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e2756f9ab3c394a98c078c42cb6aa9b085b90181;p=ceph.git osd: scale mon report interval with timeout backoff If we have had to scale the backoff by 3x because the mon is loaded, scale the min report interval accordingly. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 677c1cd6570d..e1b4a90e4e7e 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4003,8 +4003,15 @@ void OSD::tick() if (now - last_pg_stats_sent > cct->_conf->osd_mon_report_interval_max) { osd_stat_updated = true; do_mon_report(); - } else if (now - last_mon_report > cct->_conf->osd_mon_report_interval_min) { - do_mon_report(); + } else { + double backoff = stats_ack_timeout / g_conf->osd_mon_ack_timeout; + double adjusted_min = cct->_conf->osd_mon_report_interval_min * backoff; + if (now - last_mon_report > adjusted_min) { + dout(20) << __func__ << " stats backoff " << backoff + << " adjusted_min " << adjusted_min << " - sending report" + << dendl; + do_mon_report(); + } } map_lock.put_read();