. "$STF_SUITE/include/default.cfg"
-msg
-msg "--- Configuration ---"
-msg "Runfiles: $RUNFILES"
-msg "STF_TOOLS: $STF_TOOLS"
-msg "STF_SUITE: $STF_SUITE"
-msg "STF_PATH: $STF_PATH"
-
#
# No DISKS have been provided so a basic file or loopback based devices
# must be created for the test suite to use.
#
if [ -z "${DISKS}" ]; then
+ #
+ # If this is a performance run, prevent accidental use of
+ # loopback devices.
+ #
+ [ "$TAGS" = "perf" ] && fail "Running perf tests without disks."
+
#
# Create sparse files for the test suite. These may be used
# directory or have loopback devices layered on them.
fi
fi
+#
+# It may be desirable to test with fewer disks than the default when running
+# the performance tests, but the functional tests require at least three.
+#
NUM_DISKS=$(echo "${DISKS}" | awk '{print NF}')
-[ "$NUM_DISKS" -lt 3 ] && fail "Not enough disks ($NUM_DISKS/3 minimum)"
+if [ "$TAGS" != "perf" ]; then
+ [ "$NUM_DISKS" -lt 3 ] && fail "Not enough disks ($NUM_DISKS/3 minimum)"
+fi
#
# Disable SELinux until the ZFS Test Suite has been updated accordingly.
sudo /bin/sh -c "echo 0 >/proc/spl/kstat/zfs/dbgmsg"
fi
+msg
+msg "--- Configuration ---"
+msg "Runfiles: $RUNFILES"
+msg "STF_TOOLS: $STF_TOOLS"
+msg "STF_SUITE: $STF_SUITE"
+msg "STF_PATH: $STF_PATH"
msg "FILEDIR: $FILEDIR"
msg "FILES: $FILES"
msg "LOOPBACKS: $LOOPBACKS"
CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS condense.indirect_commit_entry_delay_ms zfs_condense_indirect_commit_entry_delay_ms
CONDENSE_INDIRECT_OBSOLETE_PCT condense.indirect_obsolete_pct zfs_condense_indirect_obsolete_pct
CONDENSE_MIN_MAPPING_BYTES condense.min_mapping_bytes zfs_condense_min_mapping_bytes
-DBUF_CACHE_MAX_BYTES dbuf_cache.max_bytes dbuf_cache_max_bytes
+DBUF_CACHE_SHIFT dbuf.cache_shift dbuf_cache_shift
DEADMAN_CHECKTIME_MS deadman.checktime_ms zfs_deadman_checktime_ms
DEADMAN_FAILMODE deadman.failmode zfs_deadman_failmode
DEADMAN_SYNCTIME_MS deadman.synctime_ms zfs_deadman_synctime_ms
#
#
-# Copyright (c) 2015, 2016 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
# Copyright (c) 2016, Intel Corporation.
#
. $STF_SUITE/include/libtest.shlib
-# If neither is specified, do a nightly run.
-[[ -z $PERF_REGRESSION_WEEKLY ]] && export PERF_REGRESSION_NIGHTLY=1
-
-# Default runtime for each type of test run.
-export PERF_RUNTIME_WEEKLY=$((30 * 60))
-export PERF_RUNTIME_NIGHTLY=$((10 * 60))
+# Defaults common to all the tests in the regression group
+export PERF_RUNTIME=${PERF_RUNTIME:-'180'}
+export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
+export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
+export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
+export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
# Default to JSON for fio output
export PERF_FIO_FORMAT=${PERF_FIO_FORMAT:-'json'}
if $clear_cache; then
# Clear the ARC
- zpool export $PERFPOOL
- zpool import $PERFPOOL
+ log_must zinject -a
fi
if [[ -n $ZINJECT_DELAYS ]]; then
# set before launching zfstest to override the defaults.
#
# PERF_RUNTIME: The time in seconds each fio invocation should run.
-# PERF_RUNTYPE: A human readable tag that appears in logs. The defaults are
-# nightly and weekly.
# PERF_NTHREADS: A list of how many threads each fio invocation will use.
# PERF_SYNC_TYPES: Whether to use (O_SYNC) or not. 1 is sync IO, 0 is async IO.
# PERF_IOSIZES: A list of blocksizes in which each fio invocation will do IO.
echo $max_arc_size
}
-function get_max_dbuf_cache_size
+function get_arc_target
{
- typeset -l max_dbuf_cache_size
+ typeset -l arc_c
+
+ if is_freebsd; then
+ arc_c=$(sysctl -n kstat.zfs.misc.arcstats.c)
+ elif is_illumos; then
+ arc_c=$(dtrace -qn 'BEGIN {
+ printf("%u\n", `arc_stats.arcstat_c.value.ui64);
+ exit(0);
+ }')
+ elif is_linux; then
+ arc_c=`awk '$1 == "c" { print $3 }' \
+ /proc/spl/kstat/zfs/arcstats`
+ fi
+
+ [[ $? -eq 0 ]] || log_fail "get_arc_target failed"
+
+ echo $arc_c
+}
+
+function get_dbuf_cache_size
+{
+ typeset -l dbuf_cache_size dbuf_cache_shift
if is_illumos; then
- max_dbuf_cache_size=$(dtrace -qn 'BEGIN {
+ dbuf_cache_size=$(dtrace -qn 'BEGIN {
printf("%u\n", `dbuf_cache_max_bytes);
exit(0);
}')
else
- max_dbuf_cache_size=$(get_tunable DBUF_CACHE_MAX_BYTES)
+ dbuf_cache_shift=$(get_tunable DBUF_CACHE_SHIFT)
+ dbuf_cache_size=$(($(get_arc_target) / 2**dbuf_cache_shift))
fi
- [[ $? -eq 0 ]] || log_fail "get_max_dbuf_cache_size failed"
+ [[ $? -eq 0 ]] || log_fail "get_dbuf_cache_size failed"
- echo $max_dbuf_cache_size
+ echo $dbuf_cache_size
}
# Create a file with some information about how this system is configured.
echo $lun_list
}
+function print_perf_settings
+{
+ echo "PERF_NTHREADS: $PERF_NTHREADS"
+ echo "PERF_NTHREADS_PER_FS: $PERF_NTHREADS_PER_FS"
+ echo "PERF_SYNC_TYPES: $PERF_SYNC_TYPES"
+ echo "PERF_IOSIZES: $PERF_IOSIZES"
+}
+
# Create a perf_data directory to hold performance statistics and
# configuration information.
export PERF_DATA_DIR=$(get_perf_output_dir)
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 128k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'16 32'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'16 32'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
# Layout the files to be used by the read tests. Create as many files as the
# largest number of threads. An fio run with fewer threads will use a subset
)
fi
-log_note "Random reads with $PERF_RUNTYPE settings"
+log_note "Random reads with settings: $(print_perf_settings)"
do_fio_run random_reads.fio false true
log_pass "Measure IO stats during random read load"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'4 8 16 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- 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_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES='' # bssplit used instead
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'32 64'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES='' # bssplit used instead
# Layout the files to be used by the readwrite tests. Create as many files
# as the largest number of threads. An fio run with fewer threads will use
)
fi
-log_note "Random reads and writes with $PERF_RUNTYPE settings"
+log_note "Random reads and writes with settings: $(print_perf_settings)"
do_fio_run random_readwrite.fio false true
log_pass "Measure IO stats during random read and write load"
#
#
-# Copyright (c) 2017, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2017, 2021 by Delphix. All rights reserved.
#
#
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'0 1'}
- export PERF_IOSIZES='8k 64k'
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES='8k'
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
# Layout the files to be used by the readwrite tests. Create as many files
# as the largest number of threads. An fio run with fewer threads will use
)
fi
-log_note "Random reads and writes with $PERF_RUNTYPE settings"
+log_note "Random reads and writes with settings: $(print_perf_settings)"
do_fio_run random_readwrite_fixed.fio false true
log_pass "Measure IO stats during random read and write load"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'1 4 8 16 32 64 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'0 1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 256k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'32 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'32 128'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
# Set up the scripts and output files that will log performance data.
lun_list=$(pool_to_lun_list $PERFPOOL)
)
fi
-log_note "Random writes with $PERF_RUNTYPE settings"
+log_note "Random writes with settings: $(print_perf_settings)"
do_fio_run random_writes.fio true false
log_pass "Measure IO stats during random write load"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'1 2 4 8 16 32 64 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0 1'}
- 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_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'1 4 16 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0 1'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'1 4 16 64'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0 1'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'8k'}
# Until the performance tests over NFS can deal with multiple file systems,
# force the use of only one file system when testing over NFS.
"dtrace -s $PERF_SCRIPTS/offcpu-profile.d" "offcpu-profile"
)
fi
-log_note "ZIL specific random write workload with $PERF_RUNTYPE settings"
+log_note \
+ "ZIL specific random write workload with settings: $(print_perf_settings)"
do_fio_run random_writes.fio true false
log_pass "Measure IO stats during ZIL specific random write workload"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 128k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'8 16'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
# Layout the files to be used by the read tests. Create as many files as the
# largest number of threads. An fio run with fewer threads will use a subset
)
fi
-log_note "Sequential reads with $PERF_RUNTYPE settings"
+log_note "Sequential reads with settings: $(print_perf_settings)"
do_fio_run sequential_reads.fio false true
log_pass "Measure IO stats during sequential read load"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Make sure the working set can be cached in the arc. Aim for 1/2 of arc.
export TOTAL_SIZE=$(($(get_max_arc_size) / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 128k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
# Layout the files to be used by the read tests. Create as many files as the
# largest number of threads. An fio run with fewer threads will use a subset
)
fi
-log_note "Sequential cached reads with $PERF_RUNTYPE settings"
+log_note "Sequential cached reads with settings: $(print_perf_settings)"
do_fio_run sequential_reads.fio false false
log_pass "Measure IO stats during sequential cached read load"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Make sure the working set can be cached in the arc. Aim for 1/2 of arc.
export TOTAL_SIZE=$(($(get_max_arc_size) / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 128k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'64 128'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'128k 1m'}
# Layout the files to be used by the read tests. Create as many files as the
# largest number of threads. An fio run with fewer threads will use a subset
)
fi
-log_note "Sequential cached reads from $DIRECTORY with $PERF_RUNTYPE settings"
+log_note "Sequential cached reads from $DIRECTORY with " \
+ "ettings: $(print_perf_settings)"
do_fio_run sequential_reads.fio false false
log_pass "Measure IO stats during sequential cached read load"
#
#
-# Copyright (c) 2016, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2016, 2021 by Delphix. All rights reserved.
#
#
populate_perf_filesystems
# Ensure the working set can be cached in the dbuf cache.
-export TOTAL_SIZE=$(($(get_max_dbuf_cache_size) * 3 / 4))
+export TOTAL_SIZE=$(($(get_dbuf_cache_size) * 3 / 4))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'8 16 32 64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 128k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'64'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'64k'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'64'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'64k'}
# Layout the files to be used by the read tests. Create as many files as the
# largest number of threads. An fio run with fewer threads will use a subset
)
fi
-log_note "Sequential cached reads with $PERF_RUNTYPE settings"
+log_note "Sequential cached reads with settings: $(print_perf_settings)"
do_fio_run sequential_reads.fio false false
log_pass "Measure IO stats during sequential cached read load"
#
#
-# Copyright (c) 2015, 2020 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
#
# Aim to fill the pool to 50% capacity while accounting for a 3x compressratio.
export TOTAL_SIZE=$(($(get_prop avail $PERFPOOL) * 3 / 2))
-# Variables for use by fio.
-if [[ -n $PERF_REGRESSION_WEEKLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_WEEKLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'weekly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'1 4 8 16 32 64 128'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'0 1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 64k 256k'}
-elif [[ -n $PERF_REGRESSION_NIGHTLY ]]; then
- export PERF_RUNTIME=${PERF_RUNTIME:-$PERF_RUNTIME_NIGHTLY}
- export PERF_RANDSEED=${PERF_RANDSEED:-'1234'}
- export PERF_COMPPERCENT=${PERF_COMPPERCENT:-'66'}
- export PERF_COMPCHUNK=${PERF_COMPCHUNK:-'4096'}
- export PERF_RUNTYPE=${PERF_RUNTYPE:-'nightly'}
- export PERF_NTHREADS=${PERF_NTHREADS:-'16 32'}
- export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
- export PERF_SYNC_TYPES=${PERF_SYNC_TYPES:-'1'}
- export PERF_IOSIZES=${PERF_IOSIZES:-'8k 128k 1m'}
-fi
+# Variables specific to this test for use by fio.
+export PERF_NTHREADS=${PERF_NTHREADS:-'16 32'}
+export PERF_NTHREADS_PER_FS=${PERF_NTHREADS_PER_FS:-'0'}
+export PERF_IOSIZES=${PERF_IOSIZES:-'8k 128k 1m'}
# Set up the scripts and output files that will log performance data.
lun_list=$(pool_to_lun_list $PERFPOOL)
)
fi
-log_note "Sequential writes with $PERF_RUNTYPE settings"
+log_note "Sequential writes with settings: $(print_perf_settings)"
do_fio_run sequential_writes.fio true false
log_pass "Measure IO stats during sequential write load"
#
#
-# Copyright (c) 2015 by Delphix. All rights reserved.
+# Copyright (c) 2015, 2021 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
verify_runnable "global"
-verify_disk_count "$DISKS" 3
log_pass