From: Shreya Subramanian Date: Wed, 4 Jun 2025 23:33:06 +0000 (+0000) Subject: osd: Added perf counters for full and incremental maps X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a927f6b93e29a27379e9f9e6146392e1e5599bba;p=ceph.git osd: Added perf counters for full and incremental maps Added perf counters to track when OSDs receive full vs incremental OSDMaps. Useful for debugging cases where full maps are frequent and could degrade performance. Changes include updates to OSD.cc, osd_perf_counters.cc/h. Signed-off-by: Shreya Subramanian --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 73428c796372..82f23910d474 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -8262,6 +8262,18 @@ void OSD::handle_osd_map(MOSDMap *m) << dendl; logger->inc(l_osd_map); + if (!m->maps.empty()) { + logger->inc(l_osd_full_map_received, m->maps.size()); + } + if (!m->incremental_maps.empty()) { + logger->inc(l_osd_inc_map_received, m->incremental_maps.size()); + } + dout(10) << __func__ + << ": received " << m->maps.size() << " full maps " + << "and " << m->incremental_maps.size() + << " incremental maps" + << dendl; + logger->inc(l_osd_mape, last - first + 1); if (first <= superblock.get_newest_map()) logger->inc(l_osd_mape_dup, superblock.get_newest_map() - first + 1); diff --git a/src/osd/osd_perf_counters.cc b/src/osd/osd_perf_counters.cc index 6efc9d5c5e95..3e72e9f56cea 100644 --- a/src/osd/osd_perf_counters.cc +++ b/src/osd/osd_perf_counters.cc @@ -246,6 +246,12 @@ PerfCounters *build_osd_logger(CephContext *cct) { osd_plb.add_u64( l_osd_hb_to, "heartbeat_to_peers", "Heartbeat (ping) peers we send to"); osd_plb.add_u64_counter(l_osd_map, "map_messages", "OSD map messages"); + osd_plb.add_u64_counter( + l_osd_full_map_received, "full_map_received", + "number of full OSD map recieved via MOSDMap"); + osd_plb.add_u64_counter( + l_osd_inc_map_received, "inc_map_received", + "number of incremental OSD map recieved via MOSDMap"); osd_plb.add_u64_counter(l_osd_mape, "map_message_epochs", "OSD map epochs"); osd_plb.add_u64_counter( l_osd_mape_dup, "map_message_epoch_dups", "OSD map duplicates"); diff --git a/src/osd/osd_perf_counters.h b/src/osd/osd_perf_counters.h index 2f6ac21276ff..0eae8fad8cd3 100644 --- a/src/osd/osd_perf_counters.h +++ b/src/osd/osd_perf_counters.h @@ -91,6 +91,8 @@ enum osd_counter_idx_t { l_osd_map, l_osd_mape, l_osd_mape_dup, + l_osd_full_map_received, + l_osd_inc_map_received, l_osd_waiting_for_map,