]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: introduce "truncate" latency perf counter.
authorPMemDev <ifedotov@suse.com>
Mon, 7 Dec 2020 18:32:48 +0000 (18:32 +0000)
committerIgor Fedotov <igor.fedotov@croit.io>
Mon, 6 Dec 2021 10:43:44 +0000 (13:43 +0300)
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 5404150e15ae769811ad1310a1e9838044a0dbc0..728d9bd34cc6f153d2e35c0f90f947713957318b 100644 (file)
@@ -5200,6 +5200,9 @@ void BlueStore::_init_logger()
   b.add_time_avg(l_bluestore_remove_lat, "remove_lat",
     "Average removal latency",
     "rm_l", PerfCountersBuilder::PRIO_USEFUL);
+  b.add_time_avg(l_bluestore_truncate_lat, "truncate_lat",
+    "Average truncate latency",
+    "tr_l", PerfCountersBuilder::PRIO_USEFUL);
   //****************************************
 
   // Resulting size axis configuration for op histograms, values are in bytes
@@ -15784,12 +15787,27 @@ int BlueStore::_truncate(TransContext *txc,
   dout(15) << __func__ << " " << c->cid << " " << o->oid
           << " 0x" << std::hex << offset << std::dec
           << dendl;
+
+  auto start_time = mono_clock::now();
   int r = 0;
   if (offset >= OBJECT_MAX_SIZE) {
     r = -E2BIG;
   } else {
     _do_truncate(txc, c, o, offset);
   }
+  log_latency_fn(
+    __func__,
+    l_bluestore_truncate_lat,
+    mono_clock::now() - start_time,
+    cct->_conf->bluestore_log_op_age,
+    [&](const ceph::timespan& lat) {
+      ostringstream ostr;
+      ostr << ", lat = " << timespan_str(lat)
+        << " cid =" << c->cid
+        << " oid =" << o->oid;
+      return ostr.str();
+    }
+  );
   dout(10) << __func__ << " " << c->cid << " " << o->oid
           << " 0x" << std::hex << offset << std::dec
           << " = " << r << dendl;
@@ -15904,9 +15922,9 @@ int BlueStore::_remove(TransContext *txc,
   dout(15) << __func__ << " " << c->cid << " " << o->oid
           << " onode " << o.get()
           << " txc "<< txc << dendl;
-
-  auto start_time = mono_clock::now();
+ auto start_time = mono_clock::now();
   int r = _do_remove(txc, c, o);
+
   log_latency_fn(
     __func__,
     l_bluestore_remove_lat,
index 4e32e9144cc5ade8aff61f61eee9bdb5a350d56c..7ddaa0222a95cb565cde14424600599a6167f797 100644 (file)
@@ -192,6 +192,7 @@ enum {
   l_bluestore_omap_clear_lat,
   l_bluestore_clist_lat,
   l_bluestore_remove_lat,
+  l_bluestore_truncate_lat,
   //****************************************
 
   // allocation stats