fstests: add fio perf results support

This patch does the nuts and bolts of grabbing fio results and
storing them in a database in order to check against for future
runs.  This works by storing the results in resuts/fio-results.db as
a sqlite database.  The src/perf directory has all the supporting
python code for parsing the fio json results, storing it in the
database, and loading previous results from the database to compare
with the current results.

This also adds a PERF_CONFIGNAME option that must be set for this to
work.  Since we all have various ways we run fstests it doesn't make
sense to compare different configurations with each other (unless
specifically desired).  The PERF_CONFIGNAME will allow us to
separate out results for different test run configurations to make
sure we're comparing results correctly.

Currently we only check against the last perf result.  In the future
I will flesh this out to compare against the average of N number of
runs to be a little more complete, and hopefully that will allow us
to also watch latencies as well.

[eguan: add required Makefile updates]

Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Josef Bacik
2017-11-07 16:53:32 -05:00
committed by Eryu Guan
parent 30daf6bd5f
commit c134a345f7
13 changed files with 477 additions and 3 deletions
+8 -2
View File
@@ -8,13 +8,13 @@ _______________________
sudo apt-get install xfslibs-dev uuid-dev libtool-bin \
e2fsprogs automake gcc libuuid1 quota attr libattr1-dev make \
libacl1-dev libaio-dev xfsprogs libgdbm-dev gawk fio dbench \
uuid-runtime
uuid-runtime python sqlite3
For Fedora, RHEL, or CentOS:
yum install acl attr automake bc dbench dump e2fsprogs fio \
gawk gcc indent libtool lvm2 make psmisc quota sed \
xfsdump xfsprogs \
libacl-devel libattr-devel libaio-devel libuuid-devel \
xfsprogs-devel btrfs-progs-devel
xfsprogs-devel btrfs-progs-devel python sqlite
(Older distributions may require xfsprogs-qa-devel as well.)
(Note that for RHEL and CentOS, you may need the EPEL repo.)
- run make
@@ -93,6 +93,12 @@ Preparing system for tests:
It is no longer necessary to set TEST_XFS_SCRUB.
- setenv LOGWRITES_DEV to a block device to use for power fail
testing.
- setenv PERF_CONFIGNAME to a arbitrary string to be used for
identifying the test setup for running perf tests. This should
be different for each type of performance test you wish to run so
that relevant results are compared. For example 'spinningrust'
for configurations that use spinning disks and 'nvme' for tests
using nvme drives.
- or add a case to the switch in common/config assigning
these variables based on the hostname of your test