From: Josef Bacik <josef@toxicpanda.com>
To: linux-fsdevel@vger.kernel.org, kernel-team@fb.com,
linux-btrfs@vger.kernel.org, linux-block@vger.kernel.org,
linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [ANNOUNCE] fsperf: a simple fs/block performance testing framework
Date: Fri, 6 Oct 2017 17:09:57 -0400 [thread overview]
Message-ID: <20171006210956.vf326sydjiphsefo@destiny> (raw)
Hello,
One thing that comes up a lot every LSF is the fact that we have no general way
that we do performance testing. Every fs developer has a set of scripts or
things that they run with varying degrees of consistency, but nothing central
that we all use. I for one am getting tired of finding regressions when we are
deploying new kernels internally, so I wired this thing up to try and address
this need.
We all hate convoluted setups, the more brain power we have to put in to setting
something up the less likely we are to use it, so I took the xfstests approach
of making it relatively simple to get running and relatively easy to add new
tests. For right now the only thing this framework does is run fio scripts. I
chose fio because it already gathers loads of performance data about it's runs.
We have everything we need there, latency, bandwidth, cpu time, and all broken
down by reads, writes, and trims. I figure most of us are familiar enough with
fio and how it works to make it relatively easy to add new tests to the
framework.
I've posted my code up on github, you can get it here
https://github.com/josefbacik/fsperf
All (well most) of the results from fio are stored in a local sqlite database.
Right now the comparison stuff is very crude, it simply checks against the
previous run and it only checks a few of the keys by default. You can check
latency if you want, but while writing this stuff up it seemed that latency was
too variable from run to run to be useful in a "did my thing regress or improve"
sort of way.
The configuration is brain dead simple, the README has examples. All you need
to do is make your local.cfg, run ./setup and then run ./fsperf and you are good
to go.
The plan is to add lots of workloads as we discover regressions and such. We
don't want anything that takes too long to run otherwise people won't run this,
so the existing tests don't take much longer than a few minutes each. I will be
adding some more comparison options so you can compare against averages of all
previous runs and such.
Another future goal is to parse the sqlite database and generate graphs of all
runs for the tests so we can visualize changes over time. This is where the
latency measurements will be more useful so we can spot patterns rather than
worrying about test to test variances.
Please let me know if you have any feedback. I'll take github pull requests for
people who like that workflow, but email'ed patches work as well. Thanks,
Josef
next reply other threads:[~2017-10-06 21:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-06 21:09 Josef Bacik [this message]
2017-10-09 0:51 ` [ANNOUNCE] fsperf: a simple fs/block performance testing framework Dave Chinner
2017-10-09 2:25 ` Josef Bacik
2017-10-09 3:43 ` Theodore Ts'o
2017-10-09 12:54 ` Josef Bacik
2017-10-09 15:14 ` Theodore Ts'o
2017-10-09 5:17 ` Dave Chinner
2017-10-09 6:54 ` Eryu Guan
2017-10-09 12:52 ` Theodore Ts'o
2017-10-09 13:00 ` Josef Bacik
2017-10-09 21:09 ` Dave Chinner
2017-10-09 21:15 ` Josef Bacik
2017-10-10 9:00 ` Mel Gorman
2017-10-09 14:40 ` David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171006210956.vf326sydjiphsefo@destiny \
--to=josef@toxicpanda.com \
--cc=kernel-team@fb.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).