From: dongdong Date: Mon, 3 Jul 2017 15:49:36 +0000 (+0800) Subject: MDS: update the mlogger of mds in function check_memory_usage X-Git-Tag: v12.1.2~175^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=27e7cda322547b820cc5c0b5443c3dbbb4897e80;p=ceph.git MDS: update the mlogger of mds in function check_memory_usage 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 --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index abdf5b2a75e1..6da1a51b3c26 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -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()); diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 6d75054adcfb..d2501bbb56f4 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -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; } /* diff --git a/src/mds/MDSRank.h b/src/mds/MDSRank.h index e8ec9dc07c2a..7c6df739d90c 100644 --- a/src/mds/MDSRank.h +++ b/src/mds/MDSRank.h @@ -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.