From 86840616ba62e37cd7bdc04fc0f5d63d2df93525 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Wed, 2 Sep 2020 14:44:07 +0300 Subject: [PATCH] os/bluestore: perf counters for omap_get_keys[_get_values] Signed-off-by: Igor Fedotov --- src/os/bluestore/BlueStore.cc | 18 ++++++++++++++++++ src/os/bluestore/BlueStore.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index a90901aa489..89e2e3aec18 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4917,6 +4917,10 @@ void BlueStore::_init_logger() "Average omap iterator lower_bound call latency"); b.add_time_avg(l_bluestore_omap_next_lat, "omap_next_lat", "Average omap iterator next call latency"); + b.add_time_avg(l_bluestore_omap_get_keys_lat, "omap_get_keys_lat", + "Average omap get_keys call latency"); + b.add_time_avg(l_bluestore_omap_get_values_lat, "omap_get_values_lat", + "Average omap get_values call latency"); b.add_time_avg(l_bluestore_clist_lat, "clist_lat", "Average collection listing latency"); logger = b.create_perf_counters(); @@ -10487,6 +10491,7 @@ int BlueStore::omap_get_keys( dout(15) << __func__ << " " << c->get_cid() << " oid " << oid << dendl; if (!c->exists) return -ENOENT; + auto start1 = mono_clock::now(); std::shared_lock l(c->lock); int r = 0; OnodeRef o = c->get_onode(oid, false); @@ -10518,6 +10523,12 @@ int BlueStore::omap_get_keys( } } out: + c->store->log_latency( + __func__, + l_bluestore_omap_get_keys_lat, + mono_clock::now() - start1, + c->store->cct->_conf->bluestore_log_omap_iterator_age); + dout(10) << __func__ << " " << c->get_cid() << " oid " << oid << " = " << r << dendl; return r; @@ -10535,6 +10546,7 @@ int BlueStore::omap_get_values( if (!c->exists) return -ENOENT; std::shared_lock l(c->lock); + auto start1 = mono_clock::now(); int r = 0; string final_key; OnodeRef o = c->get_onode(oid, false); @@ -10562,6 +10574,12 @@ int BlueStore::omap_get_values( } } out: + c->store->log_latency( + __func__, + l_bluestore_omap_get_values_lat, + mono_clock::now() - start1, + c->store->cct->_conf->bluestore_log_omap_iterator_age); + dout(10) << __func__ << " " << c->get_cid() << " oid " << oid << " = " << r << dendl; return r; diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index b81e89f5da4..65a8b093236 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -140,6 +140,8 @@ enum { l_bluestore_omap_upper_bound_lat, l_bluestore_omap_lower_bound_lat, l_bluestore_omap_next_lat, + l_bluestore_omap_get_keys_lat, + l_bluestore_omap_get_values_lat, l_bluestore_clist_lat, l_bluestore_last }; -- 2.39.5