From: Dhairya Parmar Date: Thu, 5 Oct 2023 12:11:38 +0000 (+0530) Subject: mds: report clients laggy due laggy OSDs only after checking any OSD is laggy X-Git-Tag: v18.2.4~418^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=59b9b491222b4832a8cd7640398e9c31c976c5cb;p=ceph.git mds: report clients laggy due laggy OSDs only after checking any OSD is laggy Fixes: https://tracker.ceph.com/issues/63105 Signed-off-by: Dhairya Parmar (cherry picked from commit 8a5677f956d1b18ebae22c27b690b83e82db13cc) --- diff --git a/src/mds/Beacon.cc b/src/mds/Beacon.cc index 4c232707ce32..5dd319a14057 100644 --- a/src/mds/Beacon.cc +++ b/src/mds/Beacon.cc @@ -498,13 +498,17 @@ void Beacon::notify_health(MDSRank const *mds) // Report laggy client(s) due to laggy OSDs { + bool defer_client_eviction = + g_conf().get_val("defer_client_eviction_on_laggy_osds") + && mds->objecter->with_osdmap([](const OSDMap &map) { + return map.any_osd_laggy(); }); auto&& laggy_clients = mds->server->get_laggy_clients(); - if (!laggy_clients.empty()) { + if (defer_client_eviction && !laggy_clients.empty()) { std::vector laggy_clients_metrics; for (const auto& laggy_client: laggy_clients) { CachedStackStringStream css; *css << "Client " << laggy_client << " is laggy; not evicted" - << " because some OSD(s) is/are laggy"; + << " because some OSD(s) is/are laggy"; MDSHealthMetric m(MDS_HEALTH_CLIENTS_LAGGY, HEALTH_WARN, css->strv()); laggy_clients_metrics.emplace_back(std::move(m)); }