From 2797a282d2862152f6f7357d41f1036f944d7a3c Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Thu, 14 Feb 2019 16:10:57 +0800 Subject: [PATCH] mds: start to trim cache when mds enters clientreplay state MDS scans strays when it enters clientreplay state. MDS may load lots of objects into its cache. Signed-off-by: "Yan, Zheng" --- src/mds/MDSRank.cc | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 8988a5d8700..2a480da6c6b 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -727,27 +727,28 @@ void MDSRankDispatcher::tick() sessionmap.update_average_session_age(); if (is_active() || is_stopping()) { - server->recall_client_state(nullptr, Server::RecallFlags::ENFORCE_MAX); - mdcache->trim(); - mdcache->trim_client_leases(); - mdcache->check_memory_usage(); mdlog->trim(); // NOT during recovery! } - // log - if (logger) { - logger->set(l_mds_subtrees, mdcache->num_subtrees()); - - mdcache->log_stat(); - } - // ... if (is_clientreplay() || is_active() || is_stopping()) { + mdcache->trim_client_leases(); + mdcache->trim(); + mdcache->check_memory_usage(); + + server->recall_client_state(nullptr, Server::RecallFlags::ENFORCE_MAX); + server->find_idle_sessions(); server->evict_cap_revoke_non_responders(); locker->tick(); } + // log + if (logger) { + logger->set(l_mds_subtrees, mdcache->num_subtrees()); + mdcache->log_stat(); + } + if (is_reconnect()) server->reconnect_tick(); if (is_clientreplay()) -- 2.39.5