summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-07-15 16:11:08 -0700
committerSamuel Just <sam.just@inktank.com>2013-07-16 15:29:52 -0700
commitd9e0e789bc854577af400b7498e95b480002ff66 (patch)
tree2dbde2fae6dc54c359b4c2b08c2a5898532f3f03
parent62d9983bce7c837ef10e31ac99b562efb380a5ba (diff)
downloadceph-d9e0e789bc854577af400b7498e95b480002ff66.tar.gz
FileStore: add a perf counter for time spent acquiring op queue throttle
Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/os/FileStore.cc4
-rw-r--r--src/os/ObjectStore.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc
index 70f182a61e0..5afeba070d8 100644
--- a/src/os/FileStore.cc
+++ b/src/os/FileStore.cc
@@ -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);
diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h
index 7310d53b0ee..6bfefa09a47 100644
--- a/src/os/ObjectStore.h
+++ b/src/os/ObjectStore.h
@@ -67,6 +67,7 @@ enum {
l_os_commit_len,
l_os_commit_lat,
l_os_j_full,
+ l_os_queue_lat,
l_os_last,
};