]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
FileStore: add a perf counter for time spent acquiring op queue throttle
authorSamuel Just <sam.just@inktank.com>
Mon, 15 Jul 2013 23:11:08 +0000 (16:11 -0700)
committerSamuel Just <sam.just@inktank.com>
Tue, 16 Jul 2013 22:29:52 +0000 (15:29 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/os/FileStore.cc
src/os/ObjectStore.h

index 70f182a61e00c56304be403dc94dbde659cd8b17..5afeba070d86eaf6f172ced23d285e31c49b6635 100644 (file)
@@ -467,6 +467,7 @@ FileStore::FileStore(const std::string &base, const std::string &jdev, const cha
   plb.add_time_avg(l_os_commit_len, "commitcycle_interval");
   plb.add_time_avg(l_os_commit_lat, "commitcycle_latency");
   plb.add_u64_counter(l_os_j_full, "journal_full");
+  plb.add_time_avg(l_os_queue_lat, "queue_transaction_latency_avg");
 
   logger = plb.create_perf_counters();
 
@@ -1954,6 +1955,7 @@ void FileStore::op_queue_reserve_throttle(Op *o)
   logger->set(l_os_oq_max_ops, max_ops);
   logger->set(l_os_oq_max_bytes, max_bytes);
 
+  utime_t start = ceph_clock_now(g_ceph_context);
   {
     Mutex::Locker l(op_throttle_lock);
     while ((max_ops && (op_queue_len + 1) > max_ops) ||
@@ -1967,6 +1969,8 @@ void FileStore::op_queue_reserve_throttle(Op *o)
     op_queue_len++;
     op_queue_bytes += o->bytes;
   }
+  utime_t end = ceph_clock_now(g_ceph_context);
+  logger->tinc(l_os_queue_lat, end - start);
 
   logger->set(l_os_oq_ops, op_queue_len);
   logger->set(l_os_oq_bytes, op_queue_bytes);
index 7310d53b0eeda152befe5115d5f726a7ef08a903..6bfefa09a470ab3e8c8ecc0d057deb8e9a58c7c2 100644 (file)
@@ -67,6 +67,7 @@ enum {
   l_os_commit_len,
   l_os_commit_lat,
   l_os_j_full,
+  l_os_queue_lat,
   l_os_last,
 };