From: Igor Fedotov Date: Wed, 2 Sep 2020 11:44:07 +0000 (+0300) Subject: os/bluestore: perf counters for omap_get_keys[_get_values] X-Git-Tag: v16.1.0~369^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=86840616ba62e37cd7bdc04fc0f5d63d2df93525;p=ceph.git os/bluestore: perf counters for omap_get_keys[_get_values] Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index a90901aa4896..89e2e3aec18a 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 b81e89f5da4c..65a8b0932360 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 };