From 63855468265c721e66ebe4d4665ba49dd8c051c1 Mon Sep 17 00:00:00 2001 From: Wei Jin Date: Tue, 18 Oct 2016 10:41:19 +0800 Subject: [PATCH] os/filestore: clean filestore perfcounters Move filestore perfcounters from objectstore to filestore itself and change internal index name. Signed-off-by: Wei Jin --- src/os/ObjectStore.h | 26 ---------- src/os/filestore/FileJournal.cc | 36 +++++++------- src/os/filestore/FileStore.cc | 84 ++++++++++++++++----------------- src/os/filestore/FileStore.h | 25 ++++++++++ 4 files changed, 85 insertions(+), 86 deletions(-) diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h index 36bbd125d857a..10b513755df03 100644 --- a/src/os/ObjectStore.h +++ b/src/os/ObjectStore.h @@ -45,32 +45,6 @@ namespace ceph { class Formatter; } -enum { - l_os_first = 84000, - l_os_jq_ops, - l_os_jq_bytes, - l_os_j_ops, - l_os_j_bytes, - l_os_j_lat, - l_os_j_wr, - l_os_j_wr_bytes, - l_os_j_full, - l_os_committing, - l_os_commit, - l_os_commit_len, - l_os_commit_lat, - l_os_oq_max_ops, - l_os_oq_ops, - l_os_ops, - l_os_oq_max_bytes, - l_os_oq_bytes, - l_os_bytes, - l_os_apply_lat, - l_os_queue_lat, - l_os_last, -}; - - /* * low-level interface to the local OSD file system */ diff --git a/src/os/filestore/FileJournal.cc b/src/os/filestore/FileJournal.cc index c56295c6ff11e..a0985ff7e824e 100644 --- a/src/os/filestore/FileJournal.cc +++ b/src/os/filestore/FileJournal.cc @@ -844,7 +844,7 @@ int FileJournal::prepare_multi_write(bufferlist& bl, uint64_t& orig_ops, uint64_ goto out; // commit what we have if (logger) - logger->inc(l_os_j_full); + logger->inc(l_filestore_journal_full); if (wait_on_full) { dout(20) << "prepare_multi_write full on first entry, need to wait" << dendl; @@ -923,7 +923,7 @@ void FileJournal::queue_completions_thru(uint64_t seq) << " " << next.finish << " lat " << lat << dendl; if (logger) { - logger->tinc(l_os_j_lat, lat); + logger->tinc(l_filestore_journal_latency, lat); } if (next.finish) finisher->queue(next.finish); @@ -1260,8 +1260,8 @@ void FileJournal::write_thread_entry() assert(r == 0); if (logger) { - logger->inc(l_os_j_wr); - logger->inc(l_os_j_wr_bytes, bl.length()); + logger->inc(l_filestore_journal_wr); + logger->inc(l_filestore_journal_wr_bytes, bl.length()); } #ifdef HAVE_LIBAIO @@ -1596,14 +1596,14 @@ void FileJournal::submit_entry(uint64_t seq, bufferlist& e, uint32_t orig_len, if (osd_op) osd_op->mark_event("commit_queued_for_journal_write"); if (logger) { - logger->inc(l_os_jq_bytes, orig_len); - logger->inc(l_os_jq_ops, 1); + logger->inc(l_filestore_journal_queue_bytes, orig_len); + logger->inc(l_filestore_journal_queue_ops, 1); } throttle.register_throttle_seq(seq, e.length()); if (logger) { - logger->inc(l_os_j_ops, 1); - logger->inc(l_os_j_bytes, e.length()); + logger->inc(l_filestore_journal_ops, 1); + logger->inc(l_filestore_journal_bytes, e.length()); } { @@ -1646,8 +1646,8 @@ void FileJournal::pop_write() assert(write_lock.is_locked()); Mutex::Locker locker(writeq_lock); if (logger) { - logger->dec(l_os_jq_bytes, writeq.front().orig_len); - logger->dec(l_os_jq_ops, 1); + logger->dec(l_filestore_journal_queue_bytes, writeq.front().orig_len); + logger->dec(l_filestore_journal_queue_ops, 1); } writeq.pop_front(); } @@ -1661,8 +1661,8 @@ void FileJournal::batch_pop_write(list &items) } for (auto &&i : items) { if (logger) { - logger->dec(l_os_jq_bytes, i.orig_len); - logger->dec(l_os_jq_ops, 1); + logger->dec(l_filestore_journal_queue_bytes, i.orig_len); + logger->dec(l_filestore_journal_queue_ops, 1); } } } @@ -1672,8 +1672,8 @@ void FileJournal::batch_unpop_write(list &items) assert(write_lock.is_locked()); for (auto &&i : items) { if (logger) { - logger->inc(l_os_jq_bytes, i.orig_len); - logger->inc(l_os_jq_ops, 1); + logger->inc(l_filestore_journal_queue_bytes, i.orig_len); + logger->inc(l_filestore_journal_queue_ops, 1); } } Mutex::Locker locker(writeq_lock); @@ -1735,8 +1735,8 @@ void FileJournal::committed_thru(uint64_t seq) auto released = throttle.flush(seq); if (logger) { - logger->dec(l_os_j_ops, released.first); - logger->dec(l_os_j_bytes, released.second); + logger->dec(l_filestore_journal_ops, released.first); + logger->dec(l_filestore_journal_bytes, released.second); } if (seq < last_committed_seq) { @@ -1935,8 +1935,8 @@ bool FileJournal::read_entry( throttle.take(amount_to_take); throttle.register_throttle_seq(next_seq, amount_to_take); if (logger) { - logger->inc(l_os_j_ops, 1); - logger->inc(l_os_j_bytes, amount_to_take); + logger->inc(l_filestore_journal_ops, 1); + logger->inc(l_filestore_journal_bytes, amount_to_take); } if (next_seq > seq) { return false; diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index dd278c2e0e15c..232892ce48d62 100644 --- a/src/os/filestore/FileStore.cc +++ b/src/os/filestore/FileStore.cc @@ -144,10 +144,10 @@ void FileStore::FSPerfTracker::update_from_perfcounters( { os_commit_latency.consume_next( logger.get_tavg_ms( - l_os_j_lat)); + l_filestore_journal_latency)); os_apply_latency.consume_next( logger.get_tavg_ms( - l_os_apply_lat)); + l_filestore_apply_latency)); } @@ -600,29 +600,29 @@ FileStore::FileStore(const std::string &base, const std::string &jdev, osflagbit } // initialize logger - PerfCountersBuilder plb(g_ceph_context, internal_name, l_os_first, l_os_last); - - plb.add_u64(l_os_jq_ops, "journal_queue_ops", "Operations in journal queue"); - plb.add_u64_counter(l_os_j_ops, "journal_ops", "Total journal entries written"); - plb.add_u64(l_os_jq_bytes, "journal_queue_bytes", "Size of journal queue"); - plb.add_u64_counter(l_os_j_bytes, "journal_bytes", "Total operations size in journal"); - plb.add_time_avg(l_os_j_lat, "journal_latency", "Average journal queue completing latency"); - plb.add_u64_counter(l_os_j_wr, "journal_wr", "Journal write IOs"); - plb.add_u64_avg(l_os_j_wr_bytes, "journal_wr_bytes", "Journal data written"); - plb.add_u64(l_os_oq_max_ops, "op_queue_max_ops", "Max operations in writing to FS queue"); - plb.add_u64(l_os_oq_ops, "op_queue_ops", "Operations in writing to FS queue"); - plb.add_u64_counter(l_os_ops, "ops", "Operations written to store"); - plb.add_u64(l_os_oq_max_bytes, "op_queue_max_bytes", "Max data in writing to FS queue"); - plb.add_u64(l_os_oq_bytes, "op_queue_bytes", "Size of writing to FS queue"); - plb.add_u64_counter(l_os_bytes, "bytes", "Data written to store"); - plb.add_time_avg(l_os_apply_lat, "apply_latency", "Apply latency"); - plb.add_u64(l_os_committing, "committing", "Is currently committing"); - - plb.add_u64_counter(l_os_commit, "commitcycle", "Commit cycles"); - plb.add_time_avg(l_os_commit_len, "commitcycle_interval", "Average interval between commits"); - plb.add_time_avg(l_os_commit_lat, "commitcycle_latency", "Average latency of commit"); - plb.add_u64_counter(l_os_j_full, "journal_full", "Journal writes while full"); - plb.add_time_avg(l_os_queue_lat, "queue_transaction_latency_avg", "Store operation queue latency"); + PerfCountersBuilder plb(g_ceph_context, internal_name, l_filestore_first, l_filestore_last); + + plb.add_u64(l_filestore_journal_queue_ops, "journal_queue_ops", "Operations in journal queue"); + plb.add_u64_counter(l_filestore_journal_ops, "journal_ops", "Total journal entries written"); + plb.add_u64(l_filestore_journal_queue_bytes, "journal_queue_bytes", "Size of journal queue"); + plb.add_u64_counter(l_filestore_journal_bytes, "journal_bytes", "Total operations size in journal"); + plb.add_time_avg(l_filestore_journal_latency, "journal_latency", "Average journal queue completing latency"); + plb.add_u64_counter(l_filestore_journal_wr, "journal_wr", "Journal write IOs"); + plb.add_u64_avg(l_filestore_journal_wr_bytes, "journal_wr_bytes", "Journal data written"); + plb.add_u64(l_filestore_op_queue_max_ops, "op_queue_max_ops", "Max operations in writing to FS queue"); + plb.add_u64(l_filestore_op_queue_ops, "op_queue_ops", "Operations in writing to FS queue"); + plb.add_u64_counter(l_filestore_ops, "ops", "Operations written to store"); + plb.add_u64(l_filestore_op_queue_max_bytes, "op_queue_max_bytes", "Max data in writing to FS queue"); + plb.add_u64(l_filestore_op_queue_bytes, "op_queue_bytes", "Size of writing to FS queue"); + plb.add_u64_counter(l_filestore_bytes, "bytes", "Data written to store"); + plb.add_time_avg(l_filestore_apply_latency, "apply_latency", "Apply latency"); + plb.add_u64(l_filestore_committing, "committing", "Is currently committing"); + + plb.add_u64_counter(l_filestore_commitcycle, "commitcycle", "Commit cycles"); + plb.add_time_avg(l_filestore_commitcycle_interval, "commitcycle_interval", "Average interval between commits"); + plb.add_time_avg(l_filestore_commitcycle_latency, "commitcycle_latency", "Average latency of commit"); + plb.add_u64_counter(l_filestore_journal_full, "journal_full", "Journal writes while full"); + plb.add_time_avg(l_filestore_queue_transaction_latency_avg, "queue_transaction_latency_avg", "Store operation queue latency"); logger = plb.create_perf_counters(); @@ -1947,8 +1947,8 @@ void FileStore::queue_op(OpSequencer *osr, Op *o) osr->queue(o); - logger->inc(l_os_ops); - logger->inc(l_os_bytes, o->bytes); + logger->inc(l_filestore_ops); + logger->inc(l_filestore_bytes, o->bytes); dout(5) << "queue_op " << o << " seq " << o->op << " " << *osr @@ -1963,16 +1963,16 @@ void FileStore::op_queue_reserve_throttle(Op *o) throttle_ops.get(); throttle_bytes.get(o->bytes); - logger->set(l_os_oq_ops, throttle_ops.get_current()); - logger->set(l_os_oq_bytes, throttle_bytes.get_current()); + logger->set(l_filestore_op_queue_ops, throttle_ops.get_current()); + logger->set(l_filestore_op_queue_bytes, throttle_bytes.get_current()); } void FileStore::op_queue_release_throttle(Op *o) { throttle_ops.put(); throttle_bytes.put(o->bytes); - logger->set(l_os_oq_ops, throttle_ops.get_current()); - logger->set(l_os_oq_bytes, throttle_bytes.get_current()); + logger->set(l_filestore_op_queue_ops, throttle_ops.get_current()); + logger->set(l_filestore_op_queue_bytes, throttle_bytes.get_current()); } void FileStore::_do_op(OpSequencer *osr, ThreadPool::TPHandle &handle) @@ -2017,7 +2017,7 @@ void FileStore::_finish_op(OpSequencer *osr) // called with tp lock held op_queue_release_throttle(o); - logger->tinc(l_os_apply_lat, lat); + logger->tinc(l_filestore_apply_latency, lat); if (o->onreadable_sync) { o->onreadable_sync->complete(0); @@ -2124,7 +2124,7 @@ int FileStore::queue_transactions(Sequencer *posr, vector& tls, } submit_manager.op_submit_finish(op_num); utime_t end = ceph_clock_now(g_ceph_context); - logger->tinc(l_os_queue_lat, end - start); + logger->tinc(l_filestore_queue_transaction_latency_avg, end - start); return 0; } @@ -2152,7 +2152,7 @@ int FileStore::queue_transactions(Sequencer *posr, vector& tls, 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); + logger->tinc(l_filestore_queue_transaction_latency_avg, end - start); return 0; } @@ -2189,7 +2189,7 @@ int FileStore::queue_transactions(Sequencer *posr, vector& tls, apply_manager.op_apply_finish(op); utime_t end = ceph_clock_now(g_ceph_context); - logger->tinc(l_os_queue_lat, end - start); + logger->tinc(l_filestore_queue_transaction_latency_avg, end - start); return r; } @@ -3918,7 +3918,7 @@ void FileStore::sync_entry() timer.add_event_after(m_filestore_commit_timeout, sync_entry_timeo); sync_entry_timeo_lock.Unlock(); - logger->set(l_os_committing, 1); + logger->set(l_filestore_committing, 1); dout(15) << "sync_entry committing " << cp << dendl; stringstream errstream; @@ -3991,16 +3991,16 @@ void FileStore::sync_entry() utime_t dur = done - startwait; dout(10) << "sync_entry commit took " << lat << ", interval was " << dur << dendl; - logger->inc(l_os_commit); - logger->tinc(l_os_commit_lat, lat); - logger->tinc(l_os_commit_len, dur); + logger->inc(l_filestore_commitcycle); + logger->tinc(l_filestore_commitcycle_latency, lat); + logger->tinc(l_filestore_commitcycle_interval, dur); apply_manager.commit_finish(); if (!m_disable_wbthrottle) { wbthrottle.clear(); } - logger->set(l_os_committing, 0); + logger->set(l_filestore_committing, 0); // remove old snaps? if (backend->can_checkpoint()) { @@ -5687,8 +5687,8 @@ int FileStore::set_throttle_params() g_conf->filestore_queue_max_ops, &ss); - logger->set(l_os_oq_max_ops, throttle_ops.get_max()); - logger->set(l_os_oq_max_bytes, throttle_bytes.get_max()); + logger->set(l_filestore_op_queue_max_ops, throttle_ops.get_max()); + logger->set(l_filestore_op_queue_max_bytes, throttle_bytes.get_max()); if (!valid) { derr << "tried to set invalid params: " diff --git a/src/os/filestore/FileStore.h b/src/os/filestore/FileStore.h index cb83bfbe758fb..d0c75463b1967 100644 --- a/src/os/filestore/FileStore.h +++ b/src/os/filestore/FileStore.h @@ -67,6 +67,31 @@ class FileStoreBackend; #define CEPH_FS_FEATURE_INCOMPAT_SHARDS CompatSet::Feature(1, "sharded objects") +enum { + l_filestore_first = 84000, + l_filestore_journal_queue_ops, + l_filestore_journal_queue_bytes, + l_filestore_journal_ops, + l_filestore_journal_bytes, + l_filestore_journal_latency, + l_filestore_journal_wr, + l_filestore_journal_wr_bytes, + l_filestore_journal_full, + l_filestore_committing, + l_filestore_commitcycle, + l_filestore_commitcycle_interval, + l_filestore_commitcycle_latency, + l_filestore_op_queue_max_ops, + l_filestore_op_queue_ops, + l_filestore_ops, + l_filestore_op_queue_max_bytes, + l_filestore_op_queue_bytes, + l_filestore_bytes, + l_filestore_apply_latency, + l_filestore_queue_transaction_latency_avg, + l_filestore_last, +}; + class FSSuperblock { public: CompatSet compat_features; -- 2.39.5