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: v14.2.17~98^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4e9898971ffdaad068f838fae5e6a1894fcf30b9;p=ceph.git os/bluestore: perf counters for omap_get_keys[_get_values] Signed-off-by: Igor Fedotov (cherry picked from commit 86840616ba62e37cd7bdc04fc0f5d63d2df93525) Conflicts: src/os/bluestore/BlueStore.cc Legacy locking in use. --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 9f9e9748d801..82639d8832aa 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4705,6 +4705,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(); @@ -10253,6 +10257,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(); RWLock::RLocker l(c->lock); int r = 0; OnodeRef o = c->get_onode(oid, false); @@ -10285,6 +10290,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; @@ -10302,6 +10313,7 @@ int BlueStore::omap_get_values( if (!c->exists) return -ENOENT; RWLock::RLocker l(c->lock); + auto start1 = mono_clock::now(); int r = 0; string final_key; OnodeRef o = c->get_onode(oid, false); @@ -10329,6 +10341,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 f623a08cd83c..e7f45da30ba0 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -129,6 +129,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 };