]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: l_osd_agent_{wake,skip,flush,evict}
authorSage Weil <sage@inktank.com>
Mon, 17 Feb 2014 20:23:44 +0000 (12:23 -0800)
committerSage Weil <sage@inktank.com>
Tue, 18 Feb 2014 12:51:03 +0000 (04:51 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc
src/osd/OSD.h
src/osd/ReplicatedPG.cc

index 93f9f288ab30a6025391a63d315647dfd88133a1..7d8c554f6d0c3e3ba83401dd76b3408cadb52245 100644 (file)
@@ -1444,6 +1444,11 @@ void OSD::create_logger()
   osd_plb.add_u64_counter(l_osd_tier_dirty, "tier_dirty");
   osd_plb.add_u64_counter(l_osd_tier_clean, "tier_clean");
 
+  osd_plb.add_u64_counter(l_osd_agent_wake, "agent_wake");
+  osd_plb.add_u64_counter(l_osd_agent_skip, "agent_skip");
+  osd_plb.add_u64_counter(l_osd_agent_flush, "agent_flush");
+  osd_plb.add_u64_counter(l_osd_agent_evict, "agent_evict");
+
   logger = osd_plb.create_perf_counters();
   cct->get_perfcounters_collection()->add(logger);
 }
index e3c2e1884e49197cb22e7f1ab419e4dc38680a07..c5590233672b721121a2b9dd54603948a80bda06 100644 (file)
@@ -134,6 +134,11 @@ enum {
   l_osd_tier_dirty,
   l_osd_tier_clean,
 
+  l_osd_agent_wake,
+  l_osd_agent_skip,
+  l_osd_agent_flush,
+  l_osd_agent_evict,
+
   l_osd_last,
 };
 
index f5d8094da1c3bfbd418f59c73a51d90007614f23..d3d7e72842df7834c522194bf1cd5d0e0f6b7000 100644 (file)
@@ -10274,6 +10274,8 @@ void ReplicatedPG::agent_work(int start_max)
     return;
   }
 
+  osd->logger->inc(l_osd_agent_wake);
+
   dout(10) << __func__
           << " max " << start_max
           << ", flush " << agent_state->get_flush_mode_name()
@@ -10305,29 +10307,35 @@ void ReplicatedPG::agent_work(int start_max)
        ++p) {
     if (is_degraded_object(*p)) {
       dout(20) << __func__ << " skip (degraded) " << *p << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
     ObjectContextRef obc = get_object_context(*p, false, NULL);
     if (!obc) {
       // we didn't flush; we may miss something here.
       dout(20) << __func__ << " no obc for " << *p << ", skipping" << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
     if (!obc->obs.exists) {
       dout(20) << __func__ << " " << obc->obs.oi.soid << " dne, skipping"
               << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
     if (scrubber.write_blocked_by_scrub(obc->obs.oi.soid)) {
       dout(20) << __func__ << " scrubbing, skipping " << obc->obs.oi << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
     if (obc->obs.oi.soid.nspace == cct->_conf->osd_hit_set_namespace) {
       dout(20) << __func__ << " skip (hit set) " << obc->obs.oi << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
     if (obc->is_blocked()) {
       dout(20) << __func__ << " skip (blocked) " << obc->obs.oi << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
 
@@ -10335,6 +10343,7 @@ void ReplicatedPG::agent_work(int start_max)
     if (base_pool->is_erasure() &&
        obc->obs.oi.test_flag(object_info_t::FLAG_OMAP)) {
       dout(20) << __func__ << " skip (omap to EC) " << obc->obs.oi << dendl;
+      osd->logger->inc(l_osd_agent_skip);
       continue;
     }
 
@@ -10410,6 +10419,8 @@ bool ReplicatedPG::agent_maybe_flush(ObjectContextRef& obc)
   ctx->on_finish = new C_AgentFlushStartStop(this, obc->obs.oi.soid);
 
   start_flush(ctx, false);
+
+  osd->logger->inc(l_osd_agent_flush);
   return true;
 }
 
@@ -10489,6 +10500,7 @@ bool ReplicatedPG::agent_maybe_evict(ObjectContextRef& obc)
   finish_ctx(ctx, pg_log_entry_t::DELETE);
   simple_repop_submit(repop);
   osd->logger->inc(l_osd_tier_evict);
+  osd->logger->inc(l_osd_agent_evict);
   return true;
 }