]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: perf counters for omap_get_keys[_get_values]
authorIgor Fedotov <ifedotov@suse.com>
Wed, 2 Sep 2020 11:44:07 +0000 (14:44 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Mon, 7 Dec 2020 16:28:22 +0000 (19:28 +0300)
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 86840616ba62e37cd7bdc04fc0f5d63d2df93525)

 Conflicts:
src/os/bluestore/BlueStore.cc
 Legacy locking in use.

src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 9f9e9748d801851ce28e50e2711053583c6e721e..82639d8832aa498160e138f3bd83c144f240f679 100644 (file)
@@ -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;
index f623a08cd83c9d98073e57634330ddbe7a0a05d5..e7f45da30ba0402811ece57f3fd008da7db0aae3 100644 (file)
@@ -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
 };