From: Yan, Zheng Date: Thu, 14 Feb 2019 08:10:57 +0000 (+0800) Subject: mds: start to trim cache when mds enters clientreplay state X-Git-Tag: v14.1.0~17^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2797a282d2862152f6f7357d41f1036f944d7a3c;p=ceph.git 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" --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 8988a5d87002..2a480da6c6b7 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())