From: Venky Shankar Date: Wed, 4 Jul 2018 09:44:57 +0000 (-0400) Subject: mds: show session load average in dump session X-Git-Tag: v12.2.9~48^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0ed0fd9905ceb96f821fa130c4c530a05ea8610c;p=ceph.git mds: show session load average in dump session Signed-off-by: Venky Shankar (cherry picked from commit 682dc08cbd521342b4abc45fd85edb2dd7bc5682) Conflicts: src/mds/SessionMap.h --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 885895aa63f..61d493c2ff0 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -2143,6 +2143,9 @@ void MDSRankDispatcher::dump_sessions(const SessionFilter &filter, Formatter *f) f->dump_int("num_caps", s->caps.size()); f->dump_string("state", s->get_state_name()); + if (s->is_open() || s->is_stale()) { + f->dump_unsigned("request_load_avg", s->get_load_avg()); + } f->dump_int("replay_requests", is_clientreplay() ? s->get_request_count() : 0); f->dump_unsigned("completed_requests", s->get_num_completed_requests()); f->dump_bool("reconnecting", server->waiting_for_reconnect(p->first.num())); diff --git a/src/mds/SessionMap.h b/src/mds/SessionMap.h index 91a83458096..16173e8d8e2 100644 --- a/src/mds/SessionMap.h +++ b/src/mds/SessionMap.h @@ -104,7 +104,7 @@ private: std::deque projected; // request load average for this session - DecayCounter load_avg; + mutable DecayCounter load_avg; DecayRate load_avg_rate; public: @@ -209,6 +209,9 @@ public: assert(is_open() || is_stale()); load_avg_rate.set_halflife(rate); } + uint64_t get_load_avg() const { + return (uint64_t)load_avg.get(ceph_clock_now(), load_avg_rate); + } void hit_session() { load_avg.hit(ceph_clock_now(), load_avg_rate); }