]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/purgequeue: add l_pq_executed_ops counter 58328/head
authorshimin <shimin@kuaishou.com>
Fri, 13 Oct 2023 07:28:58 +0000 (15:28 +0800)
committerJos Collin <jcollin@redhat.com>
Fri, 28 Jun 2024 03:22:35 +0000 (08:52 +0530)
We need to know cluster deleting pressure better. And only pq_executed
 is not enough, because file size is different.

Fixes: https://tracker.ceph.com/issues/63468
Signed-off-by: shimin <shimin@kuaishou.com>
(cherry picked from commit bdae273235104c8d7e1d46add3b64d78511f4d0c)

src/mds/PurgeQueue.cc
src/mds/PurgeQueue.h

index e8f416bd97ac7112e60943cd2c2d263ec70c797b..639c7e85277a60b9d81fd67b4754d459a5e76118 100644 (file)
@@ -138,6 +138,8 @@ void PurgeQueue::create_logger()
 {
   PerfCountersBuilder pcb(g_ceph_context, "purge_queue", l_pq_first, l_pq_last);
 
+  pcb.add_u64_counter(l_pq_executed_ops, "pq_executed_ops", "Purge queue ops executed",
+                      "puro", PerfCountersBuilder::PRIO_INTERESTING);
   pcb.add_u64_counter(l_pq_executed, "pq_executed", "Purge queue tasks executed",
                       "purg", PerfCountersBuilder::PRIO_INTERESTING);
 
@@ -710,7 +712,8 @@ void PurgeQueue::_execute_item_complete(
     pending_expire.insert(expire_to);
   }
 
-  ops_in_flight -= _calculate_ops(iter->second);
+  auto executed_ops = _calculate_ops(iter->second);
+  ops_in_flight -= executed_ops;
   logger->set(l_pq_executing_ops, ops_in_flight);
   ops_high_water = std::max(ops_high_water, ops_in_flight);
   logger->set(l_pq_executing_ops_high_water, ops_high_water);
@@ -735,6 +738,7 @@ void PurgeQueue::_execute_item_complete(
     << "/" << expire_pos << ")" << dendl;
 
   logger->set(l_pq_item_in_journal, item_num);
+  logger->inc(l_pq_executed_ops, executed_ops);
   logger->inc(l_pq_executed);
 }
 
index 6e953d3e6333fb208148af48c223e3c2ef84829e..7bc101e31c4fb955efff77070f5397e8bab05647 100644 (file)
@@ -89,6 +89,7 @@ enum {
   l_pq_executing_ops_high_water,
   l_pq_executing,
   l_pq_executing_high_water,
+  l_pq_executed_ops,
   l_pq_executed,
   l_pq_item_in_journal,
   l_pq_last