From: Adam Kupczyk Date: Tue, 16 Jan 2024 10:22:53 +0000 (+0000) Subject: os/bluestore: Add "write_lat" perf counter X-Git-Tag: testing/wip-vshankar-testing-20240814.104559-debug~9^2~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=03bac5d64ce6e69f35547492b14c19601092f9a6;p=ceph-ci.git os/bluestore: Add "write_lat" perf counter New "write_lat" tracks wallclock time spent in execution of BlueStore::_write(). Signed-off-by: Adam Kupczyk --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 265b006261a..03d66222e0e 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -6255,6 +6255,9 @@ void BlueStore::_init_logger() // write op stats //**************************************** + b.add_time_avg(l_bluestore_write_lat, "write_lat", + "write_op average execution time", + "aw", PerfCountersBuilder::PRIO_USEFUL); b.add_u64_counter(l_bluestore_write_big, "write_big", "Large aligned writes into fresh blobs"); b.add_u64_counter(l_bluestore_write_big_bytes, "write_big_bytes", @@ -17341,6 +17344,7 @@ int BlueStore::_write(TransContext *txc, dout(15) << __func__ << " " << c->cid << " " << o->oid << " 0x" << std::hex << offset << "~" << length << std::dec << dendl; + auto start = mono_clock::now(); int r = 0; if (offset + length >= OBJECT_MAX_SIZE) { r = -E2BIG; @@ -17349,6 +17353,8 @@ int BlueStore::_write(TransContext *txc, r = _do_write(txc, c, o, offset, length, bl, fadvise_flags); txc->write_onode(o); } + auto finish = mono_clock::now(); + logger->tinc(l_bluestore_write_lat, finish - start); dout(10) << __func__ << " " << c->cid << " " << o->oid << " 0x" << std::hex << offset << "~" << length << std::dec << " = " << r << dendl; diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 9abdb61c18b..acba359902e 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -127,6 +127,7 @@ enum { // write op stats //**************************************** + l_bluestore_write_lat, l_bluestore_write_big, l_bluestore_write_big_bytes, l_bluestore_write_big_blobs,