]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Added perf counters for full and incremental maps 63889/head
authorShreya Subramanian <Shreya.Subramanian@ibm.com>
Wed, 4 Jun 2025 23:33:06 +0000 (23:33 +0000)
committershreya subramanian <Shreya.Subramanian@ibm.com>
Thu, 12 Jun 2025 18:00:13 +0000 (18:00 +0000)
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 <Shreya.Subramanian@ibm.com>
src/osd/OSD.cc
src/osd/osd_perf_counters.cc
src/osd/osd_perf_counters.h

index 73428c796372a590da04d1b12bec24f4d8ecc6a5..82f23910d47473866fd79d1f622db8e7c8213180 100644 (file)
@@ -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);
index 6efc9d5c5e957af5f7044805c009dbf7aeea96a9..3e72e9f56cea80fae3f048486bb9bc10125d03d3 100644 (file)
@@ -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");
index 2f6ac21276ffb52f7553035102e61256e49aa799..0eae8fad8cd39107049d1f7a28ec51a04b2ea2f7 100644 (file)
@@ -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,