]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: Add new perfcounter which record latency of
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 17 Jul 2018 08:42:26 +0000 (16:42 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 17 Jul 2018 08:42:26 +0000 (16:42 +0800)
 kv_finalize_thread.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 87e2632388c94ac81770c5389c018e2496ef8468..7d5522055c84d817eeb94406575e02f5dc7f959a 100644 (file)
@@ -4100,9 +4100,12 @@ void BlueStore::_init_logger()
                 "fl_l", PerfCountersBuilder::PRIO_INTERESTING);
   b.add_time_avg(l_bluestore_kv_commit_lat, "kv_commit_lat",
                 "Average kv_thread commit latency");
-  b.add_time_avg(l_bluestore_kv_lat, "kv_lat",
-                "Average kv_thread sync latency",
-                "k_l", PerfCountersBuilder::PRIO_INTERESTING);
+  b.add_time_avg(l_bluestore_kv_sync_lat, "kv_sync_lat",
+                "Average kv_sync thread latency",
+                "ks_l", PerfCountersBuilder::PRIO_INTERESTING);
+  b.add_time_avg(l_bluestore_kv_final_lat, "kv_final_lat",
+                "Average kv_finalize thread latency",
+                "kf_l", PerfCountersBuilder::PRIO_INTERESTING);
   b.add_time_avg(l_bluestore_state_prepare_lat, "state_prepare_lat",
     "Average prepare state latency");
   b.add_time_avg(l_bluestore_state_aio_wait_lat, "state_aio_wait_lat",
@@ -9228,7 +9231,7 @@ void BlueStore::_kv_sync_thread()
          << dendl;
        logger->tinc(l_bluestore_kv_flush_lat, dur_flush);
        logger->tinc(l_bluestore_kv_commit_lat, dur_kv);
-       logger->tinc(l_bluestore_kv_lat, dur);
+       logger->tinc(l_bluestore_kv_sync_lat, dur);
       }
 
       if (bluefs) {
@@ -9279,6 +9282,8 @@ void BlueStore::_kv_finalize_thread()
       dout(20) << __func__ << " kv_committed " << kv_committed << dendl;
       dout(20) << __func__ << " deferred_stable " << deferred_stable << dendl;
 
+      auto start = mono_clock::now();
+
       while (!kv_committed.empty()) {
        TransContext *txc = kv_committed.front();
        assert(txc->state == TransContext::STATE_KV_SUBMITTED);
@@ -9310,6 +9315,8 @@ void BlueStore::_kv_finalize_thread()
       logger->set(l_bluestore_fragmentation,
          (uint64_t)(alloc->get_fragmentation(min_alloc_size) * 1000));
 
+      logger->tinc(l_bluestore_kv_final_lat, mono_clock::now() - start);
+
       l.lock();
     }
   }
index bfd2c2eef8cb3fcca6ed91ebf7517ca38689b9ca..5e915d3e045bc0f2a44f0720925d51f2667e1a24 100644 (file)
@@ -62,7 +62,8 @@ enum {
   l_bluestore_first = 732430,
   l_bluestore_kv_flush_lat,
   l_bluestore_kv_commit_lat,
-  l_bluestore_kv_lat,
+  l_bluestore_kv_sync_lat,
+  l_bluestore_kv_final_lat,
   l_bluestore_state_prepare_lat,
   l_bluestore_state_aio_wait_lat,
   l_bluestore_state_io_done_lat,