summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Blinick <stephen.blinick@delphix.com>2016-08-18 15:51:55 -0700
committerPrakash Surya <prakash.surya@delphix.com>2018-03-19 11:21:16 -0700
commit859bfead58cf0e8c589b713386bab81385a346e6 (patch)
tree1125669930523bc0ef6a9f09807247f38c39f589
parent5f4fc069910e2cd7c469b9aaaa5bec453a954029 (diff)
downloadillumos-joyent-859bfead58cf0e8c589b713386bab81385a346e6.tar.gz
9076 ZFS Performance test concurrency should be lowered for better latency
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com>
-rw-r--r--usr/src/test/zfs-tests/include/commands.cfg1
-rw-r--r--usr/src/test/zfs-tests/tests/perf/regression/random_reads.ksh13
-rw-r--r--usr/src/test/zfs-tests/tests/perf/regression/random_readwrite.ksh13
-rw-r--r--usr/src/test/zfs-tests/tests/perf/regression/random_writes.ksh13
-rw-r--r--usr/src/test/zfs-tests/tests/perf/regression/sequential_reads.ksh13
-rw-r--r--usr/src/test/zfs-tests/tests/perf/regression/sequential_writes.ksh13
6 files changed, 56 insertions, 10 deletions
diff --git a/usr/src/test/zfs-tests/include/commands.cfg b/usr/src/test/zfs-tests/include/commands.cfg
index 1747f03da1..b85717523a 100644
--- a/usr/src/test/zfs-tests/include/commands.cfg
+++ b/usr/src/test/zfs-tests/include/commands.cfg
@@ -62,6 +62,7 @@ export USR_BIN_FILES='awk
isainfo
kill
ksh
+ kstat
ln
logname
ls
diff --git a/usr/src/test/zfs-tests/tests/perf/regression/random_reads.ksh b/usr/src/test/zfs-tests/tests/perf/regression/random_reads.ksh
index 655366e00c..72e6746851 100644
--- a/usr/src/test/zfs-tests/tests/perf/regression/random_reads.ksh
+++ b/usr/src/test/zfs-tests/tests/perf/regression/random_reads.ksh
@@ -25,6 +25,15 @@
# for all fio runs. The ARC is cleared with `zinject -a` prior to each run
# so reads will go to disk.
#
+# Thread/Concurrency settings:
+# PERF_NTHREADS defines the number of files created in the test filesystem,
+# as well as the number of threads that will simultaneously drive IO to
+# those files. The settings chosen are from measurements in the
+# PerfAutoESX/ZFSPerfESX Environments, selected at concurrency levels that
+# are at peak throughput but lowest latency. Higher concurrency introduces
+# queue time latency and would reduce the impact of code-induced performance
+# regressions.
+#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/perf/perf.shlib
@@ -48,13 +57,13 @@ export TOTAL_SIZE=$(($(get_prop avail $TESTFS) * 3 / 2))
if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 64'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'16 32'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
fi
diff --git a/usr/src/test/zfs-tests/tests/perf/regression/random_readwrite.ksh b/usr/src/test/zfs-tests/tests/perf/regression/random_readwrite.ksh
index f41a2b526e..2e02929b99 100644
--- a/usr/src/test/zfs-tests/tests/perf/regression/random_readwrite.ksh
+++ b/usr/src/test/zfs-tests/tests/perf/regression/random_readwrite.ksh
@@ -25,6 +25,15 @@
# and used for all fio runs. The ARC is cleared with `zinject -a` prior to
# each run so reads will go to disk.
#
+# Thread/Concurrency settings:
+# PERF_NTHREADS defines the number of files created in the test filesystem,
+# as well as the number of threads that will simultaneously drive IO to
+# those files. The settings chosen are from measurements in the
+# PerfAutoESX/ZFSPerfESX Environments, selected at concurrency levels that
+# are at peak throughput but lowest latency. Higher concurrency introduces
+# queue time latency and would reduce the impact of code-induced performance
+# regressions.
+#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/perf/perf.shlib
@@ -48,13 +57,13 @@ export TOTAL_SIZE=$(($(get_prop avail $TESTFS) * 3 / 2))
if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 64'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'4 8 16 64'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'0 1'}
export PERF_IOSIZES='' # bssplit used instead
elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'32 64'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES='' # bssplit used instead
fi
diff --git a/usr/src/test/zfs-tests/tests/perf/regression/random_writes.ksh b/usr/src/test/zfs-tests/tests/perf/regression/random_writes.ksh
index 9e201a827c..d4508ef882 100644
--- a/usr/src/test/zfs-tests/tests/perf/regression/random_writes.ksh
+++ b/usr/src/test/zfs-tests/tests/perf/regression/random_writes.ksh
@@ -24,6 +24,15 @@
# Prior to each fio run the dataset is recreated, and fio writes new files
# into an otherwise empty pool.
#
+# Thread/Concurrency settings:
+# PERF_NTHREADS defines the number of files created in the test filesystem,
+# as well as the number of threads that will simultaneously drive IO to
+# those files. The settings chosen are from measurements in the
+# PerfAutoESX/ZFSPerfESX Environments, selected at concurrency levels that
+# are at peak throughput but lowest latency. Higher concurrency introduces
+# queue time latency and would reduce the impact of code-induced performance
+# regressions.
+#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/perf/perf.shlib
@@ -47,13 +56,13 @@ export TOTAL_SIZE=$(($(get_prop avail $TESTFS) * 3 / 2))
if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 64'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'1 4 8 16 32 64 128'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'0 1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'32 128'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
fi
diff --git a/usr/src/test/zfs-tests/tests/perf/regression/sequential_reads.ksh b/usr/src/test/zfs-tests/tests/perf/regression/sequential_reads.ksh
index 580f2d94e4..232785648f 100644
--- a/usr/src/test/zfs-tests/tests/perf/regression/sequential_reads.ksh
+++ b/usr/src/test/zfs-tests/tests/perf/regression/sequential_reads.ksh
@@ -25,6 +25,15 @@
# for all fio runs. The ARC is cleared with `zinject -a` prior to each run
# so reads will go to disk.
#
+# Thread/Concurrency settings:
+# PERF_NTHREADS defines the number of files created in the test filesystem,
+# as well as the number of threads that will simultaneously drive IO to
+# those files. The settings chosen are from measurements in the
+# PerfAutoESX/ZFSPerfESX Environments, selected at concurrency levels that
+# are at peak throughput but lowest latency. Higher concurrency introduces
+# queue time latency and would reduce the impact of code-induced performance
+# regressions.
+#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/perf/perf.shlib
@@ -48,13 +57,13 @@ export TOTAL_SIZE=$(($(get_prop avail $TESTFS) * 3 / 2))
if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'16 64'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'64k 128k 1m'}
elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'8 16'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
fi
diff --git a/usr/src/test/zfs-tests/tests/perf/regression/sequential_writes.ksh b/usr/src/test/zfs-tests/tests/perf/regression/sequential_writes.ksh
index 493a3d18b7..2799c43336 100644
--- a/usr/src/test/zfs-tests/tests/perf/regression/sequential_writes.ksh
+++ b/usr/src/test/zfs-tests/tests/perf/regression/sequential_writes.ksh
@@ -24,6 +24,15 @@
# Prior to each fio run the dataset is recreated, and fio writes new files
# into an otherwise empty pool.
#
+# Thread/Concurrency settings:
+# PERF_NTHREADS defines the number of files created in the test filesystem,
+# as well as the number of threads that will simultaneously drive IO to
+# those files. The settings chosen are from measurements in the
+# PerfAutoESX/ZFSPerfESX Environments, selected at concurrency levels that
+# are at peak throughput but lowest latency. Higher concurrency introduces
+# queue time latency and would reduce the impact of code-induced performance
+# regressions.
+#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/perf/perf.shlib
@@ -47,13 +56,13 @@ export TOTAL_SIZE=$(($(get_prop avail $TESTFS) * 3 / 2))
if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'1 4 8 16 32 64 128'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'0 1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'8k 128k 1m'}
elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+ export PERF_NTHREADS=${PERF_NTHREADS:-'16 32'}
export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
export PERF_IOSIZES=${PERF_IOSIZES:-'8k 128k 1m'}
fi