From: Yingxin Cheng Date: Mon, 9 May 2022 08:35:56 +0000 (+0800) Subject: crimson/os/seastore/segment_cleaner: measure the initial reclaim ratio X-Git-Tag: v18.0.0~884^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=f4a3af686a337480438b3cbb79672e016dfe0279;p=ceph-ci.git crimson/os/seastore/segment_cleaner: measure the initial reclaim ratio Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/os/seastore/segment_cleaner.cc b/src/crimson/os/seastore/segment_cleaner.cc index b5d3f2b21d5..56e5ab8920a 100644 --- a/src/crimson/os/seastore/segment_cleaner.cc +++ b/src/crimson/os/seastore/segment_cleaner.cc @@ -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 {}, " diff --git a/src/crimson/os/seastore/segment_cleaner.h b/src/crimson/os/seastore/segment_cleaner.h index eaf95353bb7..d6e4e6b91bb 100644 --- a/src/crimson/os/seastore/segment_cleaner.h +++ b/src/crimson/os/seastore/segment_cleaner.h @@ -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;