mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
OpenZFS - Performance regression suite for zfstest
Author: John Wren Kennedy <john.kennedy@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Don Brady <don.brady@intel.com> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: David Quigley <david.quigley@intel.com> Approved by: Richard Lowe <richlowe@richlowe.net> Ported-by: Don Brady <don.brady@intel.com> OpenZFS-issue: https://www.illumos.org/issues/6950 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/dcbf3bd6 Delphix-commit: https://github.com/delphix/delphix-os/commit/978ed49 Closes #4929 ZFS Test Suite Performance Regression Tests This was pulled into OpenZFS via the compressed arc featureand was separated out in zfsonlinux as a separate pull request from PR-4768. It originally came in as QA-4903 in Delphix-OS from John Kennedy. Expected Usage: $ DISKS="sdb sdc sdd" zfs-tests.sh -r perf-regression.run Porting Notes: 1. Added assertions in the setup script to make sure required tools (fio, mpstat, ...) are present. 2. For the config.json generation in perf.shlib used arcstats and other binaries instead of dtrace to query the values. 3. For the perf data collection: - use "zpool iostat -lpvyL" instead of the io.d dtrace script (currently not collecting zfs_read/write latency stats) - mpstat and iostat take different arguments - prefetch_io.sh is a placeholder that uses arcstats instead of dtrace 4. Build machines require fio, mdadm and sysstat pakage (YMMV). Future Work: - Need a way to measure zfs_read and zfs_write latencies per pool. - Need tools to takes two sets of output and display/graph the differences - Bring over additional regression tests from Delphix
This commit is contained in:
committed by
Brian Behlendorf
parent
7050a65d5c
commit
679d73e98b
@@ -27,11 +27,14 @@ export DU="@DU@"
|
||||
export DUMPADM="@DUMPADM@"
|
||||
export ECHO="@ECHO@"
|
||||
export EGREP="@EGREP@"
|
||||
export FALSE="@FALSE@"
|
||||
export FDISK="@FDISK@"
|
||||
export FGREP="@FGREP@"
|
||||
export FILE="@FILE@"
|
||||
export FIND="@FIND@"
|
||||
export FIO="@FIO@"
|
||||
export FORMAT="@FORMAT@"
|
||||
export FREE="@FREE@"
|
||||
export FSCK="@FSCK@"
|
||||
export GETENT="@GETENT@"
|
||||
export GETFACL="@GETFACL@"
|
||||
@@ -44,6 +47,7 @@ export GROUPMOD="@GROUPMOD@"
|
||||
export HEAD="@HEAD@"
|
||||
export HOSTNAME="@HOSTNAME@"
|
||||
export ID="@ID@"
|
||||
export IOSTAT="@IOSTAT@"
|
||||
export ISAINFO="@ISAINFO@"
|
||||
export KILL="@KILL@"
|
||||
export KSH="@KSH@"
|
||||
@@ -61,6 +65,7 @@ export MNTTAB="@MNTTAB@"
|
||||
export MODINFO="@MODINFO@"
|
||||
export MODUNLOAD="@MODUNLOAD@"
|
||||
export MOUNT="@MOUNT@"
|
||||
export MPSTAT="@MPSTAT@"
|
||||
export MV="@MV@"
|
||||
export NAWK="@AWK@"
|
||||
export NEWFS="@NEWFS@"
|
||||
@@ -98,6 +103,7 @@ export SWAPADD="@SWAPADD@"
|
||||
export SYNC="@SYNC@"
|
||||
export TAIL="@TAIL@"
|
||||
export TAR="@TAR@"
|
||||
export TIMEOUT="@TIMEOUT@"
|
||||
export TOUCH="@TOUCH@"
|
||||
export TR="@TR@"
|
||||
export TRUNCATE="@TRUNCATE@"
|
||||
@@ -115,6 +121,7 @@ export UNSHARE="@UNSHARE@"
|
||||
export USERADD="@USERADD@"
|
||||
export USERDEL="@USERDEL@"
|
||||
export USERMOD="@USERMOD@"
|
||||
export VMSTAT="@VMSTAT@"
|
||||
export WAIT="@WAIT@"
|
||||
export WC="@WC@"
|
||||
export ZONEADM="@ZONEADM@"
|
||||
|
||||
@@ -104,12 +104,15 @@ export COMPRESSION_PROP=on
|
||||
export CHECKSUM_PROP=on
|
||||
|
||||
# some common variables used by test scripts :
|
||||
export FIO_SCRIPTS=$STF_SUITE/tests/perf/fio
|
||||
export PERF_SCRIPTS=$STF_SUITE/tests/perf/scripts
|
||||
|
||||
# some test pool names
|
||||
export TESTPOOL=testpool.$$
|
||||
export TESTPOOL1=testpool1.$$
|
||||
export TESTPOOL2=testpool2.$$
|
||||
export TESTPOOL3=testpool3.$$
|
||||
export PERFPOOL=perfpool
|
||||
|
||||
# some test file system names
|
||||
export TESTFS=testfs.$$
|
||||
|
||||
@@ -2809,6 +2809,30 @@ function vdevs_in_pool
|
||||
return 0;
|
||||
}
|
||||
|
||||
function get_max
|
||||
{
|
||||
typeset -l i max=$1
|
||||
shift
|
||||
|
||||
for i in "$@"; do
|
||||
max=$(echo $((max > i ? max : i)))
|
||||
done
|
||||
|
||||
echo $max
|
||||
}
|
||||
|
||||
function get_min
|
||||
{
|
||||
typeset -l i min=$1
|
||||
shift
|
||||
|
||||
for i in "$@"; do
|
||||
min=$(echo $((min < i ? min : i)))
|
||||
done
|
||||
|
||||
echo $min
|
||||
}
|
||||
|
||||
#
|
||||
# Wait for newly created block devices to have their minors created.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user