From: Haomai Wang Date: Thu, 3 Sep 2015 16:01:56 +0000 (+0800) Subject: PerfCounter: Make l_os_queue_lat contains the complete queue latency X-Git-Tag: v10.0.2~175^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8c4323c579a5ffa731f3c43f06e56ac834f96f39;p=ceph.git PerfCounter: Make l_os_queue_lat contains the complete queue latency We don't need l_os_queue_lat to only count the latency of op throttle, this could be done by Throttle counter itself. We may concern the latency consumed by FileJournal submit time. Signed-off-by: Haomai Wang --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 5f1754446193..736bccf6accc 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -1820,7 +1820,6 @@ void FileStore::op_queue_reserve_throttle(Op *o, ThreadPool::TPHandle *handle) 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); if (handle) handle->suspend_tp_timeout(); if (throttle_ops.should_wait(1) || @@ -1834,9 +1833,6 @@ void FileStore::op_queue_reserve_throttle(Op *o, ThreadPool::TPHandle *handle) if (handle) handle->reset_tp_timeout(); - utime_t end = ceph_clock_now(g_ceph_context); - logger->tinc(l_os_queue_lat, end - start); - logger->set(l_os_oq_ops, throttle_ops.get_current()); logger->set(l_os_oq_bytes, throttle_bytes.get_current()); } @@ -1931,6 +1927,7 @@ int FileStore::queue_transactions(Sequencer *posr, list &tls, return 0; } + utime_t start = ceph_clock_now(g_ceph_context); // set up the sequencer OpSequencer *osr; if (!posr) @@ -1982,6 +1979,8 @@ int FileStore::queue_transactions(Sequencer *posr, list &tls, assert(0); } submit_manager.op_submit_finish(op_num); + utime_t end = ceph_clock_now(g_ceph_context); + logger->tinc(l_os_queue_lat, end - start); return 0; } @@ -2002,6 +2001,8 @@ int FileStore::queue_transactions(Sequencer *posr, list &tls, if (ondisk) apply_manager.add_waiter(op_num, ondisk); submit_manager.op_submit_finish(op_num); + utime_t end = ceph_clock_now(g_ceph_context); + logger->tinc(l_os_queue_lat, end - start); return 0; } @@ -2034,6 +2035,8 @@ int FileStore::queue_transactions(Sequencer *posr, list &tls, submit_manager.op_submit_finish(op); apply_manager.op_apply_finish(op); + utime_t end = ceph_clock_now(g_ceph_context); + logger->tinc(l_os_queue_lat, end - start); return r; } diff --git a/src/os/KeyValueStore.cc b/src/os/KeyValueStore.cc index a147c0b27ab4..2e4036adc604 100644 --- a/src/os/KeyValueStore.cc +++ b/src/os/KeyValueStore.cc @@ -1041,6 +1041,7 @@ int KeyValueStore::queue_transactions(Sequencer *posr, list &tls, TrackedOpRef osd_op, ThreadPool::TPHandle *handle) { + utime_t start = ceph_clock_now(g_ceph_context); Context *onreadable; Context *ondisk; Context *onreadable_sync; @@ -1069,6 +1070,8 @@ int KeyValueStore::queue_transactions(Sequencer *posr, list &tls, dout(5) << "queue_transactions (trailing journal) " << " " << tls <tinc(l_os_queue_lat, end - start); return 0; } @@ -1124,7 +1127,6 @@ void KeyValueStore::op_queue_reserve_throttle(Op *o, ThreadPool::TPHandle *handl perf_logger->set(l_os_oq_max_ops, max_ops); perf_logger->set(l_os_oq_max_bytes, max_bytes); - utime_t start = ceph_clock_now(g_ceph_context); if (handle) handle->suspend_tp_timeout(); if (throttle_ops.should_wait(1) || @@ -1138,9 +1140,6 @@ void KeyValueStore::op_queue_reserve_throttle(Op *o, ThreadPool::TPHandle *handl if (handle) handle->reset_tp_timeout(); - utime_t end = ceph_clock_now(g_ceph_context); - perf_logger->tinc(l_os_queue_lat, end - start); - perf_logger->set(l_os_oq_ops, throttle_ops.get_current()); perf_logger->set(l_os_oq_bytes, throttle_bytes.get_current()); }