]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
MDS: update the mlogger of mds in function check_memory_usage 16232/head
authordongdong <tdd21151186@gmail.com>
Mon, 3 Jul 2017 15:49:36 +0000 (23:49 +0800)
committerdongdong <tdd21151186@gmail.com>
Sun, 9 Jul 2017 14:37:55 +0000 (22:37 +0800)
If we don't update the mlogger here, we will encounter following bug:
suppose we first create 10000 inode in mdcache, then we trimmed it to 1000
but the "ceph daemon mds.* perf dump" will not show the correct inode number, it still shows 10000.
because for now we only update the mlogger at MDSRank::_dispatch.
check_memory_usage is called right after "mdcache trimming" at every mds tick interval
so this change will keep "ceph daemon mds.* perf dump" got the right number for "mds_mem".

Signed-off-by: dongdong tao <tdd21151186@gmail.com>
src/mds/MDCache.cc
src/mds/MDSRank.cc
src/mds/MDSRank.h

index abdf5b2a75e12ac28e8debba672e1ffe954a1359..6da1a51b3c26e01fafcc23f532f960f2d1a1f3b7 100644 (file)
@@ -7437,6 +7437,7 @@ void MDCache::check_memory_usage()
           << ", " << Capability::count() << " caps, " << caps_per_inode << " caps per inode"
           << dendl;
 
+  mds->update_mlogger();
   mds->mlogger->set(l_mdm_rss, last.get_rss());
   mds->mlogger->set(l_mdm_heap, last.get_heap());
 
index 6d75054adcfb9966260ba10ae3659d2076ef97be..d2501bbb56f44057fbd5fdbe74d2b200a0e5f928 100644 (file)
@@ -657,12 +657,17 @@ bool MDSRank::_dispatch(Message *m, bool new_msg)
   }
   */
 
+  update_mlogger();
+  return true;
+}
+
+void MDSRank::update_mlogger()
+{
   if (mlogger) {
     mlogger->set(l_mdm_ino, CInode::count());
     mlogger->set(l_mdm_dir, CDir::count());
     mlogger->set(l_mdm_dn, CDentry::count());
     mlogger->set(l_mdm_cap, Capability::count());
-
     mlogger->set(l_mdm_inoa, CInode::increments());
     mlogger->set(l_mdm_inos, CInode::decrements());
     mlogger->set(l_mdm_dira, CDir::increments());
@@ -671,11 +676,8 @@ bool MDSRank::_dispatch(Message *m, bool new_msg)
     mlogger->set(l_mdm_dns, CDentry::decrements());
     mlogger->set(l_mdm_capa, Capability::increments());
     mlogger->set(l_mdm_caps, Capability::decrements());
-
     mlogger->set(l_mdm_buf, buffer::get_total_alloc());
   }
-
-  return true;
 }
 
 /*
index e8ec9dc07c2a39f8acd6cd85bdc979c3a544a5cb..7c6df739d90ce8f08eba1b15f321bae8dd8b65e0 100644 (file)
@@ -210,6 +210,7 @@ class MDSRank {
       purge_queue.handle_conf_change(conf, changed, *mdsmap);
     }
 
+    void update_mlogger();
   protected:
     // Flag to indicate we entered shutdown: anyone seeing this to be true
     // after taking mds_lock must drop out.