From: Xuehan Xu Date: Fri, 10 Jun 2022 07:52:02 +0000 (+0800) Subject: crimson/os/seastore: add metrics for count btree extents X-Git-Tag: v18.0.0~639^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef36a9c2ba71e8bdd1e2a69bfe9e9bb0d37cbe1d;p=ceph.git crimson/os/seastore: add metrics for count btree extents Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index 73ecfd735852..70051672dea8 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -494,6 +494,7 @@ void Cache::register_metrics() auto register_tree_metrics = [&labels_by_src, &onode_label, &omap_label, this]( const sm::label_instance& tree_label, uint64_t& tree_depth, + int64_t& tree_extents_num, counter_by_src_t& committed_tree_efforts, counter_by_src_t& invalidated_tree_efforts) { metrics.add_group( @@ -505,6 +506,12 @@ void Cache::register_metrics() sm::description("the depth of tree"), {tree_label} ), + sm::make_counter( + "tree_extents_num", + tree_extents_num, + sm::description("num of extents of the tree"), + {tree_label} + ) } ); for (auto& [src, src_label] : labels_by_src) { @@ -566,21 +573,25 @@ void Cache::register_metrics() register_tree_metrics( onode_label, stats.onode_tree_depth, + stats.onode_tree_extents_num, stats.committed_onode_tree_efforts, stats.invalidated_onode_tree_efforts); register_tree_metrics( omap_label, stats.omap_tree_depth, + stats.omap_tree_extents_num, stats.committed_omap_tree_efforts, stats.invalidated_omap_tree_efforts); register_tree_metrics( lba_label, stats.lba_tree_depth, + stats.lba_tree_extents_num, stats.committed_lba_tree_efforts, stats.invalidated_lba_tree_efforts); register_tree_metrics( backref_label, stats.backref_tree_depth, + stats.backref_tree_extents_num, stats.committed_backref_tree_efforts, stats.invalidated_backref_tree_efforts); @@ -1259,11 +1270,15 @@ record_t Cache::prepare_record( if (t.lba_tree_stats.depth) { stats.lba_tree_depth = t.lba_tree_stats.depth; } + stats.lba_tree_extents_num += t.lba_tree_stats.extents_num_delta; + ceph_assert(stats.lba_tree_extents_num >= 0); get_by_src(stats.committed_lba_tree_efforts, trans_src ).increment(t.lba_tree_stats); if (t.backref_tree_stats.depth) { stats.backref_tree_depth = t.backref_tree_stats.depth; } + stats.backref_tree_extents_num += t.backref_tree_stats.extents_num_delta; + ceph_assert(stats.backref_tree_extents_num >= 0); get_by_src(stats.committed_backref_tree_efforts, trans_src ).increment(t.backref_tree_stats); diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index 796bb06b8111..582607a9f120 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -1170,18 +1170,22 @@ private: uint64_t dirty_bytes = 0; uint64_t onode_tree_depth = 0; + int64_t onode_tree_extents_num = 0; counter_by_src_t committed_onode_tree_efforts; counter_by_src_t invalidated_onode_tree_efforts; uint64_t omap_tree_depth = 0; + int64_t omap_tree_extents_num = 0; counter_by_src_t committed_omap_tree_efforts; counter_by_src_t invalidated_omap_tree_efforts; uint64_t lba_tree_depth = 0; + int64_t lba_tree_extents_num = 0; counter_by_src_t committed_lba_tree_efforts; counter_by_src_t invalidated_lba_tree_efforts; uint64_t backref_tree_depth = 0; + int64_t backref_tree_extents_num = 0; counter_by_src_t committed_backref_tree_efforts; counter_by_src_t invalidated_backref_tree_efforts; diff --git a/src/crimson/os/seastore/transaction.h b/src/crimson/os/seastore/transaction.h index d6926047ebe7..83c99f07bc66 100644 --- a/src/crimson/os/seastore/transaction.h +++ b/src/crimson/os/seastore/transaction.h @@ -359,12 +359,14 @@ public: uint64_t num_inserts = 0; uint64_t num_erases = 0; uint64_t num_updates = 0; + int64_t extents_num_delta = 0; bool is_clear() const { return (depth == 0 && num_inserts == 0 && num_erases == 0 && - num_updates == 0); + num_updates == 0 && + extents_num_delta == 0); } }; tree_stats_t& get_onode_tree_stats() {