From: Haomai Wang Date: Mon, 18 Jan 2016 11:38:59 +0000 (+0800) Subject: NVMEDevice: add perf counter for queue time X-Git-Tag: v10.0.4~81^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd5c36d9b28392a36945a726c98391b087686ebb;p=ceph.git NVMEDevice: add perf counter for queue time Signed-off-by: Haomai Wang --- diff --git a/src/os/bluestore/NVMEDevice.cc b/src/os/bluestore/NVMEDevice.cc index c2d9311998a0..2a9994c4b72c 100644 --- a/src/os/bluestore/NVMEDevice.cc +++ b/src/os/bluestore/NVMEDevice.cc @@ -54,6 +54,9 @@ enum { l_bluestore_nvmedevice_aio_write_lat, l_bluestore_nvmedevice_read_lat, l_bluestore_nvmedevice_flush_lat, + l_bluestore_nvmedevice_aio_write_queue_lat, + l_bluestore_nvmedevice_read_queue_lat, + l_bluestore_nvmedevice_flush_queue_lat, l_bluestore_nvmedevice_queue_ops, l_bluestore_nvmedevice_polling_lat, l_bluestore_nvmedevice_last @@ -370,6 +373,9 @@ int NVMEDevice::open(string p) b.add_time_avg(l_bluestore_nvmedevice_flush_lat, "flush_lat", "Average flush completing latency"); b.add_u64(l_bluestore_nvmedevice_queue_ops, "queue_ops", "Operations in nvme queue"); b.add_time_avg(l_bluestore_nvmedevice_polling_lat, "polling_lat", "Average polling latency"); + b.add_time_avg(l_bluestore_nvmedevice_aio_write_queue_lat, "aio_write_queue_lat", "Average queue write request latency"); + b.add_time_avg(l_bluestore_nvmedevice_read_queue_lat, "read_queue_lat", "Average queue read request latency"); + b.add_time_avg(l_bluestore_nvmedevice_flush_queue_lat, "flush_queue_lat", "Average queue flush request latency"); logger = b.create_perf_counters(); g_ceph_context->get_perfcounters_collection()->add(logger); @@ -458,6 +464,9 @@ void NVMEDevice::_aio_thread() derr << __func__ << " failed to do write command" << dendl; assert(0); } + lat = ceph_clock_now(g_ceph_context); + lat -= t->start; + logger->tinc(l_bluestore_nvmedevice_aio_write_queue_lat, lat); inflight_ops.inc(); t = t->next; } @@ -477,6 +486,9 @@ void NVMEDevice::_aio_thread() t->ctx->cond.Signal(); } else { inflight_ops.inc(); + lat = ceph_clock_now(g_ceph_context); + lat -= t->start; + logger->tinc(l_bluestore_nvmedevice_read_queue_lat, lat); } break; } @@ -491,6 +503,9 @@ void NVMEDevice::_aio_thread() t->ctx->cond.Signal(); } else { inflight_ops.inc(); + lat = ceph_clock_now(g_ceph_context); + lat -= t->start; + logger->tinc(l_bluestore_nvmedevice_flush_queue_lat, lat); } break; }