diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index a455225cec9..25b5a63c549 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -2147,6 +2147,9 @@ int BlueStore::ExtentMap::compress_extent_map(uint64_t offset, uint64_t length) } } } + if (removed && onode) { + onode->c->store->logger->inc(l_bluestore_extent_compress, removed); + } return removed; } @@ -2713,6 +2716,8 @@ void BlueStore::_init_logger() "Onode extent map reshard events"); b.add_u64(l_bluestore_blob_split, "bluestore_blob_split", "Sum for blob splitting due to resharding"); + b.add_u64(l_bluestore_extent_compress, "bluestore_extent_compress", + "Sum for extents that have been removed due to compression"); logger = b.create_perf_counters(); g_ceph_context->get_perfcounters_collection()->add(logger); } diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 13db970ac99..02b30b73926 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -94,6 +94,7 @@ enum { l_bluestore_txc, l_bluestore_onode_reshard, l_bluestore_blob_split, + l_bluestore_extent_compress, l_bluestore_last }; @@ -1542,7 +1543,7 @@ private: size_t block_size_order; ///< bits to shift to get block size uint64_t min_alloc_size = 0; ///< minimum allocation unit (power of 2) - uint64_t min_min_alloc_size = 0; /// < minimum seen min_alloc_size + uint64_t min_min_alloc_size = 0; ///< minimum seen min_alloc_size size_t min_alloc_size_order = 0; ///< bits for min_alloc_size uint64_t max_alloc_size; ///< maximum allocation unit (power of 2)