All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] add option to interleave blktraces
@ 2018-09-20 18:08 Dennis Zhou
  2018-09-20 18:08 ` [PATCH 1/4] options: rename name string operations for more general use Dennis Zhou
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Dennis Zhou @ 2018-09-20 18:08 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Tejun Heo, Andy Newell, fio, kernel-team, Dennis Zhou

Hi everyone,

Updates with v2:
 - Added documentation for all patches in fio.1 and HOWTO
 - Added to thread_options_pack and cconv.c
 - Bumped the FIO_SERVER_VER number accordingly

From v1:
---
Understanding how a workload performs on different devices has been
nice and easy given the infrastructure around blktrace, blkparse, and
fio. Given a blktrace, fio can rerun that workload on a different drive.

Exploring colocation is a little tricker, but doable via adding multiple
jobs in fio. An issue here is that the scheduler can influence the
performance of each run as each job is async.

This patchset adds the ability to pass multiple blktrace binary dumps to
"--read_iolog" as colon separated paths and then performs simple
timestamp merging between the traces. Two additional parameters are
added, "--merge_blktrace_scalars" and "--merge_blktrace_iters", to allow
for scaling a particular trace and adjusting the number of iterations
respectively.

In an example, given two 60s blktraces, A and B. Imagine we want to see
how trace A would perform if we slowed it down by 50%. We can experiment
here with --merge_blktrace_scalars="200:100" and
--merge_blktrace_iters="1:2". This says to run the first blktrace over
200% of the time and the second at 100% running the first for a single
iteration and the second for 2 iterations. This puts the overall runtime
at 120s for each trace.

This patchset includes the following 4 patches:
  0001-options-rename-name-string-operations-for-more-gener.patch
  0002-blktrace-add-support-to-interleave-blktrace-files.patch
  0003-blktrace-add-option-to-scale-a-trace.patch
  0004-blktrace-add-option-to-iterate-over-a-trace-multiple.patch

0001 renames some string parsing functions to be more generic.
0002 adds basic merging support. 0003 adds merge_blktrace_scalars.
0004 adds merge_blktrace_iters.

diffstats below:

Dennis Zhou (4):
  options: rename name string operations for more general use
  blktrace: add support to interleave blktrace files
  blktrace: add option to scale a trace
  blktrace: add option to iterate over a trace multiple times

 HOWTO            |  71 ++++++++++++++++
 blktrace.c       | 210 +++++++++++++++++++++++++++++++++++++++++++++++
 blktrace.h       |  17 ++++
 cconv.c          |  15 ++++
 fio.1            |  66 +++++++++++++++
 init.c           |  21 +++++
 options.c        |  47 +++++++++--
 options.h        |   2 +
 server.h         |   2 +-
 thread_options.h |   6 ++
 10 files changed, 447 insertions(+), 10 deletions(-)

Thanks,
Dennis


^ permalink raw reply	[flat|nested] 7+ messages in thread
* [PATCH 0/4] add option to interleave blktraces
@ 2018-09-19 18:25 Dennis Zhou
  2018-09-19 18:25 ` [PATCH 1/4] options: rename name string operations for more general use Dennis Zhou
  0 siblings, 1 reply; 7+ messages in thread
From: Dennis Zhou @ 2018-09-19 18:25 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Tejun Heo, Andy Newell, fio, kernel-team, Dennis Zhou

Hi everyone,

Understanding how a workload performs on different devices has been
nice and easy given the infrastructure around blktrace, blkparse, and
fio. Given a blktrace, fio can rerun that workload on a different drive.

Exploring colocation is a little tricker, but doable via adding multiple
jobs in fio. An issue here is that the scheduler can influence the
performance of each run as each job is async.

This patchset adds the ability to pass multiple blktrace binary dumps to
"--read_iolog" as colon separated paths and then performs simple
timestamp merging between the traces. Two additional parameters are
added, "--merge_blktrace_scalars" and "--merge_blktrace_iters", to allow
for scaling a particular trace and adjusting the number of iterations
respectively.

In an example, given two 60s blktraces, A and B. Imagine we want to see
how trace A would perform if we slowed it down by 50%. We can experiment
here with --merge_blktrace_scalars="200:100" and
--merge_blktrace_iters="1:2". This says to run the first blktrace over
200% of the time and the second at 100% running the first for a single
iteration and the second for 2 iterations. This puts the overall runtime
at 120s for each trace.

This patchset includes the following 4 patches:
  0001-options-rename-name-string-operations-for-more-gener.patch
  0002-blktrace-add-support-to-interleave-blktrace-files.patch
  0003-blktrace-add-option-to-scale-a-trace.patch
  0004-blktrace-add-option-to-iterate-over-a-trace-multiple.patch

0001 renames some string parsing functions to be more generic.
0002 adds basic merging support. 0003 adds merge_blktrace_scalars.
0004 adds merge_blktrace_iters.

diffstats below:

Dennis Zhou (4):
  options: rename name string operations for more general use
  blktrace: add support to interleave blktrace files
  blktrace: add option to scale a trace
  blktrace: add option to iterate over a trace multiple times

 blktrace.c       | 210 +++++++++++++++++++++++++++++++++++++++++++++++
 blktrace.h       |  17 ++++
 init.c           |  20 +++++
 options.c        |  47 +++++++++--
 options.h        |   2 +
 thread_options.h |   3 +
 6 files changed, 290 insertions(+), 9 deletions(-)

Thanks,
Dennis


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-09-20 23:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-20 18:08 [PATCH v2 0/4] add option to interleave blktraces Dennis Zhou
2018-09-20 18:08 ` [PATCH 1/4] options: rename name string operations for more general use Dennis Zhou
2018-09-20 18:08 ` [PATCH 2/4] blktrace: add support to interleave blktrace files Dennis Zhou
2018-09-20 18:08 ` [PATCH 3/4] blktrace: add option to scale a trace Dennis Zhou
2018-09-20 18:08 ` [PATCH 4/4] blktrace: add option to iterate over a trace multiple times Dennis Zhou
2018-09-20 19:08 ` [PATCH v2 0/4] add option to interleave blktraces Jens Axboe
  -- strict thread matches above, loose matches on Subject: below --
2018-09-19 18:25 [PATCH " Dennis Zhou
2018-09-19 18:25 ` [PATCH 1/4] options: rename name string operations for more general use Dennis Zhou

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.