-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
os/bluestore: expand lttng tracepoints, improve fio_ceph_objectstore backend #29674
Conversation
retest this please. |
d0bf509
to
02b815d
Compare
retest this please |
f8582cc
to
8f572d9
Compare
@athanatos needs rebase. |
8f572d9
to
b9951d7
Compare
@tchaikov rebased |
Ok, I think I've addressed your comments. For the cmake bit, I added a cmakedefine for EVENTTRACE, made it depend on LTTNG, and cleaned up all of the code and cmake conditionals to only check EVENTTRACE. |
please note, some of my comments are folded by GitHub web UI. |
6aea329
to
01a861e
Compare
Sorry, I did indeed miss those. |
01a861e
to
42d985d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
apart from 3 nits, LGTM
src/common/ceph_time.h
Outdated
} | ||
|
||
template<typename Target, typename T> | ||
static uint64_t to_microseconds(T t) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/uint64_t/Rep/
src/common/ceph_time.h
Outdated
@@ -503,6 +503,20 @@ struct converts_to_timespec<Clock, std::void_t<decltype( | |||
template <typename Clock> | |||
constexpr bool converts_to_timespec_v = converts_to_timespec<Clock>::value; | |||
|
|||
template<typename Target, typename T> | |||
static double to_seconds(T t) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/double/Rep/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fio_ceph_objectstore looks good.
Option("bluestore_throttle_trace_rate", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) | ||
.set_default(0) | ||
.set_description(""), | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these options contain 'debug'.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what you mean. I've added a description though.
a00a5af
to
ae1eead
Compare
retest this please |
1 similar comment
retest this please |
…to file Signed-off-by: Samuel Just <sjust@redhat.com>
Because EVENTTRACE now implies LTTNG, also cleanup EVENTTRACE conditions to assume LTTNG. Also add missing eventtrace dependencies to rbd and test/objectstore. Signed-off-by: Samuel Just <sjust@redhat.com>
By nature, these tend to be extremely high volume. Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Otherwise, it will behave incorrectly if enabled dynamically. Signed-off-by: Samuel Just <sjust@redhat.com>
Only implemented for rocksdb for now. Signed-off-by: Samuel Just <sjust@redhat.com>
…Throttle This will make it easier to have a single place to emit trace information. Signed-off-by: Samuel Just <sjust@redhat.com>
This patch adds per-io bluestore specific tracepoints detailing the throttle state at queue time as well as state latencies during execution. Additionally, bluestore_throttle_trace_rate will limit the rate at which ios have tracepoints emitted. Signed-off-by: Samuel Just <sjust@redhat.com>
…ence/size Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
ae1eead
to
07c8c00
Compare
Test run: http://pulpito.ceph.com/sjust-2019-09-29_21:12:10-rados-wip-sjust-testing2-distro-basic-smithi/ |
Adds bluestore tracepoints for recording a variety of initial conditions for sampled ios including:
Also updates the fio_ceph_objectstore backend to optionally emit json formatted perf counters to a file as well as support for running multiple jobs and varying the throttle limits during a run.
The intention is that this functionality as well ceph/cbt#190 will enable somewhat quicker iteration on modifications to bluestore intended to improve throttle behavior or IO latency variability.