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: v16.2.15~138^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=69602dbee0f33cdbb239ec7307128c181b163688;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 76e71f2fe6e5..ffd3056b697c 100644 --- a/src/mds/Beacon.cc +++ b/src/mds/Beacon.cc @@ -481,13 +481,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)); }