]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore/segment_cleaner: measure the initial reclaim ratio
authorYingxin Cheng <yingxin.cheng@intel.com>
Mon, 9 May 2022 08:35:56 +0000 (16:35 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Fri, 13 May 2022 07:51:20 +0000 (15:51 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/segment_cleaner.cc
src/crimson/os/seastore/segment_cleaner.h

index b5d3f2b21d5797a690e2272e6b7e551788f09644..56e5ab8920a195bfcf023b664ce10c577c71da34 100644 (file)
@@ -517,6 +517,14 @@ void SegmentCleaner::register_metrics()
                     sm::description("rewritten bytes due to reclaim")),
     sm::make_counter("reclaimed_segment_bytes", stats.reclaimed_segment_bytes,
                     sm::description("rewritten bytes due to reclaim")),
+    sm::make_counter("closed_journal_used_bytes", stats.closed_journal_used_bytes,
+                    sm::description("used bytes when close a journal segment")),
+    sm::make_counter("closed_journal_total_bytes", stats.closed_journal_total_bytes,
+                    sm::description("total bytes of closed journal segments")),
+    sm::make_counter("closed_ool_used_bytes", stats.closed_ool_used_bytes,
+                    sm::description("used bytes when close a ool segment")),
+    sm::make_counter("closed_ool_total_bytes", stats.closed_ool_total_bytes,
+                    sm::description("total bytes of closed ool segments")),
 
     sm::make_gauge("available_ratio",
                    [this] { return segments.get_available_ratio(); },
@@ -631,6 +639,14 @@ void SegmentCleaner::close_segment(segment_id_t segment)
   LOG_PREFIX(SegmentCleaner::close_segment);
   auto old_usage = calc_utilization(segment);
   segments.mark_closed(segment);
+  auto &seg_info = segments[segment];
+  if (seg_info.type == segment_type_t::JOURNAL) {
+    stats.closed_journal_used_bytes += space_tracker->get_usage(segment);
+    stats.closed_journal_total_bytes += segments.get_segment_size();
+  } else {
+    stats.closed_ool_used_bytes += space_tracker->get_usage(segment);
+    stats.closed_ool_total_bytes += segments.get_segment_size();
+  }
   auto new_usage = calc_utilization(segment);
   adjust_segment_util(old_usage, new_usage);
   INFO("closed, should_block_on_gc {}, projected_avail_ratio {}, "
index eaf95353bb72c52a7f747ef313443c327d28b135..d6e4e6b91bb7d5e7fcf5395056df775b49b81b10 100644 (file)
@@ -650,6 +650,11 @@ private:
     uint64_t projected_count = 0;
     uint64_t projected_used_bytes_sum = 0;
 
+    uint64_t closed_journal_used_bytes = 0;
+    uint64_t closed_journal_total_bytes = 0;
+    uint64_t closed_ool_used_bytes = 0;
+    uint64_t closed_ool_total_bytes = 0;
+
     uint64_t io_blocking_num = 0;
     uint64_t io_count = 0;
     uint64_t io_blocked_count = 0;