From 28df1e91648ea9d889b9f067525c3c901078f01b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 20 Oct 2011 13:16:28 -0700 Subject: [PATCH] filestore: measure commit interval, latency, journal full count Signed-off-by: Sage Weil --- src/os/FileJournal.cc | 3 +++ src/os/FileStore.cc | 15 +++++++++++++-- src/os/ObjectStore.h | 4 ++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index c446f9c77dc07..c0c7fe9fcb574 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -594,6 +594,9 @@ int FileJournal::prepare_multi_write(bufferlist& bl, uint64_t& orig_ops, uint64_ if (orig_ops) break; // commit what we have + if (logger) + logger->inc(l_os_j_full); + if (wait_on_full) { dout(20) << "prepare_multi_write full on first entry, need to wait" << dendl; } else { diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index c7d4b548e21b1..c81a88d0477cf 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -685,6 +685,11 @@ FileStore::FileStore(const std::string &base, const std::string &jdev) : plb.add_fl_avg(l_os_apply_lat, "apply_latency"); plb.add_u64(l_os_committing, "committing"); + plb.add_u64_counter(l_os_commit, "commitcycle"); + plb.add_fl_avg(l_os_commit_len, "commitcycle_interval"); + plb.add_fl_avg(l_os_commit_lat, "commitcycle_latency"); + plb.add_u64_counter(l_os_j_full, "journal_full"); + logger = plb.create_perf_counters(); } @@ -3072,8 +3077,14 @@ void FileStore::sync_entry() } utime_t done = ceph_clock_now(g_ceph_context); - done -= start; - dout(10) << "sync_entry commit took " << done << dendl; + utime_t lat = done - start; + utime_t dur = done - startwait; + dout(10) << "sync_entry commit took " << lat << ", interval was " << dur << dendl; + + logger->inc(l_os_commit); + logger->finc(l_os_commit_lat, lat); + logger->finc(l_os_commit_len, dur); + commit_finish(); logger->set(l_os_committing, 0); diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h index cb2053814a051..1132369869b4e 100644 --- a/src/os/ObjectStore.h +++ b/src/os/ObjectStore.h @@ -57,6 +57,10 @@ enum { l_os_bytes, l_os_apply_lat, l_os_committing, + l_os_commit, + l_os_commit_len, + l_os_commit_lat, + l_os_j_full, l_os_last, }; -- 2.39.5