From: Patrick Donnelly Date: Mon, 24 Jul 2017 19:55:28 +0000 (-0700) Subject: mds: add inter-mds operations to PerfCounter X-Git-Tag: ses5-milestone10~3^2~18^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=56cf8cbca36c2be76e4f612b07d2844a14758c8a;p=ceph.git mds: add inter-mds operations to PerfCounter Fixes: http://tracker.ceph.com/issues/20760 Signed-off-by: Patrick Donnelly --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 9fc11eef93b7c..e168d8ccdeef3 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -9081,6 +9081,27 @@ void MDCache::request_finish(MDRequestRef& mdr) return; } + switch(mdr->internal_op) { + case CEPH_MDS_OP_FRAGMENTDIR: + logger->inc(l_mdss_ireq_fragmentdir); + break; + case CEPH_MDS_OP_EXPORTDIR: + logger->inc(l_mdss_ireq_exportdir); + break; + case CEPH_MDS_OP_ENQUEUE_SCRUB: + logger->inc(l_mdss_ireq_enqueue_scrub); + break; + case CEPH_MDS_OP_FLUSH: + logger->inc(l_mdss_ireq_flush); + break; + case CEPH_MDS_OP_REPAIR_FRAGSTATS: + logger->inc(l_mdss_ireq_fragstats); + break; + case CEPH_MDS_OP_REPAIR_INODESTATS: + logger->inc(l_mdss_ireq_inodestats); + break; + } + request_cleanup(mdr); } @@ -12362,6 +12383,19 @@ void MDCache::register_perfcounters() pcb.add_u64_counter(l_mdc_recovery_completed, "recovery_completed", "File recoveries completed", "recd", PerfCountersBuilder::PRIO_INTERESTING); + pcb.add_u64_counter(l_mdss_ireq_enqueue_scrub, "ireq_enqueue_scrub", + "Internal Request type enqueue scrub"); + pcb.add_u64_counter(l_mdss_ireq_exportdir, "ireq_exportdir", + "Internal Request type export dir"); + pcb.add_u64_counter(l_mdss_ireq_flush, "ireq_flush", + "Internal Request type flush"); + pcb.add_u64_counter(l_mdss_ireq_fragmentdir, "ireq_fragmentdir", + "Internal Request type fragmentdir"); + pcb.add_u64_counter(l_mdss_ireq_fragstats, "ireq_fragstats", + "Internal Request type frag stats"); + pcb.add_u64_counter(l_mdss_ireq_inodestats, "ireq_inodestats", + "Internal Request type inode stats"); + logger.reset(pcb.create_perf_counters()); g_ceph_context->get_perfcounters_collection()->add(logger.get()); recovery_queue.set_logger(logger.get()); diff --git a/src/mds/MDCache.h b/src/mds/MDCache.h index 3b0801958913d..8282ad7c44e77 100644 --- a/src/mds/MDCache.h +++ b/src/mds/MDCache.h @@ -98,6 +98,13 @@ enum { // How many inodes ever completed size recovery l_mdc_recovery_completed, + l_mdss_ireq_enqueue_scrub, + l_mdss_ireq_exportdir, + l_mdss_ireq_flush, + l_mdss_ireq_fragmentdir, + l_mdss_ireq_fragstats, + l_mdss_ireq_inodestats, + l_mdc_last, }; diff --git a/src/mds/Server.cc b/src/mds/Server.cc index cf32c95f6864f..e6e245814f742 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -70,7 +70,6 @@ using namespace std; #undef dout_prefix #define dout_prefix *_dout << "mds." << mds->get_nodeid() << ".server " - class ServerContext : public MDSInternalContextBase { protected: Server *server; diff --git a/src/mds/Server.h b/src/mds/Server.h index 2f554f26aa25b..752ba10b326ee 100644 --- a/src/mds/Server.h +++ b/src/mds/Server.h @@ -31,39 +31,39 @@ class MDLog; enum { l_mdss_first = 1000, + l_mdss_dispatch_client_request, + l_mdss_dispatch_slave_request, l_mdss_handle_client_request, - l_mdss_handle_slave_request, l_mdss_handle_client_session, - l_mdss_dispatch_client_request, + l_mdss_handle_slave_request, + l_mdss_req_create, + l_mdss_req_getattr, + l_mdss_req_getfilelock, + l_mdss_req_link, + l_mdss_req_lookup, l_mdss_req_lookuphash, l_mdss_req_lookupino, - l_mdss_req_lookupparent, l_mdss_req_lookupname, - l_mdss_req_lookup, + l_mdss_req_lookupparent, l_mdss_req_lookupsnap, - l_mdss_req_getattr, + l_mdss_req_lssnap, + l_mdss_req_mkdir, + l_mdss_req_mknod, + l_mdss_req_mksnap, + l_mdss_req_open, + l_mdss_req_readdir, + l_mdss_req_rename, + l_mdss_req_renamesnap, + l_mdss_req_rmdir, + l_mdss_req_rmsnap, + l_mdss_req_rmxattr, l_mdss_req_setattr, - l_mdss_req_setlayout, l_mdss_req_setdirlayout, - l_mdss_req_setxattr, - l_mdss_req_rmxattr, - l_mdss_req_readdir, l_mdss_req_setfilelock, - l_mdss_req_getfilelock, - l_mdss_req_create, - l_mdss_req_open, - l_mdss_req_mknod, - l_mdss_req_link, - l_mdss_req_unlink, - l_mdss_req_rmdir, - l_mdss_req_rename, - l_mdss_req_mkdir, + l_mdss_req_setlayout, + l_mdss_req_setxattr, l_mdss_req_symlink, - l_mdss_req_lssnap, - l_mdss_req_mksnap, - l_mdss_req_rmsnap, - l_mdss_req_renamesnap, - l_mdss_dispatch_slave_request, + l_mdss_req_unlink, l_mdss_last, };