From: PMemDev Date: Mon, 7 Dec 2020 18:32:48 +0000 (+0000) Subject: os/bluestore: introduce "truncate" latency perf counter. X-Git-Tag: v17.1.0~115^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8261a156f1128274910e425e19fba09c3c07197c;p=ceph.git os/bluestore: introduce "truncate" latency perf counter. Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 5404150e15a..728d9bd34cc 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -5200,6 +5200,9 @@ void BlueStore::_init_logger() b.add_time_avg(l_bluestore_remove_lat, "remove_lat", "Average removal latency", "rm_l", PerfCountersBuilder::PRIO_USEFUL); + b.add_time_avg(l_bluestore_truncate_lat, "truncate_lat", + "Average truncate latency", + "tr_l", PerfCountersBuilder::PRIO_USEFUL); //**************************************** // Resulting size axis configuration for op histograms, values are in bytes @@ -15784,12 +15787,27 @@ int BlueStore::_truncate(TransContext *txc, dout(15) << __func__ << " " << c->cid << " " << o->oid << " 0x" << std::hex << offset << std::dec << dendl; + + auto start_time = mono_clock::now(); int r = 0; if (offset >= OBJECT_MAX_SIZE) { r = -E2BIG; } else { _do_truncate(txc, c, o, offset); } + log_latency_fn( + __func__, + l_bluestore_truncate_lat, + mono_clock::now() - start_time, + cct->_conf->bluestore_log_op_age, + [&](const ceph::timespan& lat) { + ostringstream ostr; + ostr << ", lat = " << timespan_str(lat) + << " cid =" << c->cid + << " oid =" << o->oid; + return ostr.str(); + } + ); dout(10) << __func__ << " " << c->cid << " " << o->oid << " 0x" << std::hex << offset << std::dec << " = " << r << dendl; @@ -15904,9 +15922,9 @@ int BlueStore::_remove(TransContext *txc, dout(15) << __func__ << " " << c->cid << " " << o->oid << " onode " << o.get() << " txc "<< txc << dendl; - - auto start_time = mono_clock::now(); + auto start_time = mono_clock::now(); int r = _do_remove(txc, c, o); + log_latency_fn( __func__, l_bluestore_remove_lat, diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 4e32e9144cc..7ddaa0222a9 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -192,6 +192,7 @@ enum { l_bluestore_omap_clear_lat, l_bluestore_clist_lat, l_bluestore_remove_lat, + l_bluestore_truncate_lat, //**************************************** // allocation stats