]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add ObjectContext cache perf counter
authorDong Yuan <yuandong1222@gmail.com>
Wed, 12 Nov 2014 09:37:41 +0000 (09:37 +0000)
committerDong Yuan <yuandong1222@gmail.com>
Thu, 18 Dec 2014 10:52:24 +0000 (10:52 +0000)
l_osd_object_ctx_cache_total: all lookup count
l_osd_object_ctx_cache_hit:   hit lookup count

Signed-off-by: Dong Yuan <yuandong1222@gmail.com>
src/osd/OSD.cc
src/osd/OSD.h
src/osd/ReplicatedPG.cc

index 967dde72e9ba3c461178f6b55c55c4762940a56d..345e721aee9145c6af5b70c67ad9b18722324261 100644 (file)
@@ -2142,6 +2142,9 @@ void OSD::create_logger()
   osd_plb.add_u64_counter(l_osd_agent_flush, "agent_flush");
   osd_plb.add_u64_counter(l_osd_agent_evict, "agent_evict");
 
+  osd_plb.add_u64_counter(l_osd_object_ctx_cache_hit, "object_ctx_cache_hit");
+  osd_plb.add_u64_counter(l_osd_object_ctx_cache_total, "object_ctx_cache_total");
+
   logger = osd_plb.create_perf_counters();
   cct->get_perfcounters_collection()->add(logger);
 }
index fc8e8de763d5443ac6865999db114864862daf8b..c7155ae79fd19bcd0877fd0c6cdf2ef1d053223d 100644 (file)
@@ -141,6 +141,9 @@ enum {
   l_osd_agent_flush,
   l_osd_agent_evict,
 
+  l_osd_object_ctx_cache_hit,
+  l_osd_object_ctx_cache_total,
+
   l_osd_last,
 };
 
index 4a598105f1dc97ff9c5717f4cbe93d00f9ac242c..66bbaa687474edf9de385dad8fca5c3c38e17192 100644 (file)
@@ -7533,10 +7533,13 @@ ObjectContextRef ReplicatedPG::get_object_context(const hobject_t& soid,
       pg_log.get_log().objects.find(soid)->second->op ==
       pg_log_entry_t::LOST_REVERT));
   ObjectContextRef obc = object_contexts.lookup(soid);
+  osd->logger->inc(l_osd_object_ctx_cache_total);
   if (obc) {
+    osd->logger->inc(l_osd_object_ctx_cache_hit);
     dout(10) << __func__ << ": found obc in cache: " << obc
             << dendl;
   } else {
+    dout(10) << __func__ << ": obc NOT found in cache: " << soid << dendl;
     // check disk
     bufferlist bv;
     if (attrs) {