From 84be701271f341e4019ea2f08db80eceddd975ef Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Wed, 8 May 2024 20:06:11 +0300 Subject: [PATCH] kv/RocksDBStore: add more perf counters to track compactions. Signed-off-by: Igor Fedotov (cherry picked from commit 2e06b3dfac7c8deb2f9b7bd17faf9dff7617a4e1) --- src/kv/RocksDBStore.cc | 11 +++++++++-- src/kv/RocksDBStore.h | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index 1ad5a8c663c..d9e72bb771d 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -1243,7 +1243,9 @@ int RocksDBStore::do_open(ostream &out, plb.add_time_avg(l_rocksdb_submit_latency, "submit_latency", "Submit Latency"); plb.add_time_avg(l_rocksdb_submit_sync_latency, "submit_sync_latency", "Submit Sync Latency"); plb.add_u64_counter(l_rocksdb_compact, "compact", "Compactions"); - plb.add_u64_counter(l_rocksdb_compact_range, "compact_range", "Compactions by range"); + plb.add_u64_counter(l_rocksdb_compact_running, "compact_running", "Running compactions"); + plb.add_u64_counter(l_rocksdb_compact_completed, "compact_completed", "Completed compactions"); + plb.add_time(l_rocksdb_compact_lasted, "compact_lasted", "Last completed compaction duration"); plb.add_u64_counter(l_rocksdb_compact_queue_merge, "compact_queue_merge", "Mergings of ranges in compaction queue"); plb.add_u64(l_rocksdb_compact_queue_len, "compact_queue_len", "Length of compaction queue"); plb.add_time_avg(l_rocksdb_write_wal_time, "rocksdb_write_wal_time", "Rocksdb write wal time"); @@ -2013,12 +2015,17 @@ void RocksDBStore::compact_thread_entry() compact_queue.pop_front(); logger->set(l_rocksdb_compact_queue_len, compact_queue.size()); l.unlock(); - logger->inc(l_rocksdb_compact_range); + logger->inc(l_rocksdb_compact_running); + auto start = ceph_clock_now(); if (range.first.empty() && range.second.empty()) { compact(); } else { compact_range(range.first, range.second); } + auto lat = ceph_clock_now() - start; + logger->dec(l_rocksdb_compact_running); + logger->inc(l_rocksdb_compact_completed); + logger->tset(l_rocksdb_compact_lasted, lat); l.lock(); continue; } diff --git a/src/kv/RocksDBStore.h b/src/kv/RocksDBStore.h index 01c84f2d0b3..a8468a25d4d 100644 --- a/src/kv/RocksDBStore.h +++ b/src/kv/RocksDBStore.h @@ -35,7 +35,9 @@ enum { l_rocksdb_submit_latency, l_rocksdb_submit_sync_latency, l_rocksdb_compact, - l_rocksdb_compact_range, + l_rocksdb_compact_running, + l_rocksdb_compact_completed, + l_rocksdb_compact_lasted, l_rocksdb_compact_queue_merge, l_rocksdb_compact_queue_len, l_rocksdb_write_wal_time, -- 2.39.5