zpios(1)

NAME
zpios - Directly test the DMU.

SYNOPSIS

zpios [options] <-p pool>

DESCRIPTION
This utility runs in-kernel DMU performance and stress tests that do not depend on the ZFS Posix Layer ("ZPL").

OPTIONS

-t regex, --threadcount regex

    Start this many threads for each test series, specified as a comma delimited regular expression. (eg: "-t 1,2,3")

    This option is mutually exclusive with the threadcount_* options.

-l regex_low, --threadcount_low regex_low

-h regex_high, --threadcount_high regex_high

-e regex_incr, --threadcount_incr regex_incr

    Start regex_low threads for the first test, add regex_incr threads for each subsequent test, and start regex_high threads for the last test.

    These three options must be specified together and are mutually exclusive with the threadcount option.

-n regex, --regioncount regex

    Create this many regions for each test series, specified as a comma delimited regular expression. (eg: "-n 512,4096,65536")

    This option is mutually exclusive with the regioncount_* options.

-i regex_low, --regioncount_low regex_low

-j regex_high, --regioncount_high regex_high

-k regex_incr, --regioncount_incr regex_incr

    Create regex_low regions for the first test, add regex_incr regions for each subsequent test, and create regex_high regions for the last test.

    These three options must be specified together and are mutually exclusive with the regioncount option.

-o size, --offset size

    Create regions at size offset for each test series, specified as a comma delimited regular expression with an optional unit suffix. (eg: "-o 4M" means four megabytes.)

    This option is mutually exclusive with the offset_* options.

-m size_low, --offset_low size_low

-q size_high, --offset_high size_high

-r size_incr, --offset_incr size_incr

    Create a region at size_low offset for the first test, add size_incr to the offset for each subsequent test, and create a region at size_high offset for the last test.

    These three options must be specified together and are mutually exclusive with the offset option.

-c size, --chunksize size

    Use size chunks for each test, specified as a comma delimited regular expression with an optional unit suffix. (eg: "-c 1M" means one megabyte.) The chunk size must be at least the region size.

    This option is mutually exclusive with the chunksize_* options.

-a size_low, --chunksize_low size_low

-b size_high, --chunksize_high size_high

-g size_incr, --chunksize_incr size_incr

    Use a size_low chunk size for the first test, add size_incr to the chunk size for each subsequent test, and use a size_high chunk size for the last test.

    These three options must be specified together and are mutually exclusive with the chunksize option.

-s size, --regionsize size

    Use size regions for each test, specified as a comma delimited regular expression with an optional unit suffix. (eg: "-s 1M" means one megabyte.)

    This option is mutually exclusive with the regionsize_* options.

-A size_low, --regionsize_low size_low

-B size_high, --regionsize_high size_high

-C size_incr, --regionsize_incr size_incr

    Use a size_low region size for the first test, add size_incr to the region size for each subsequent test, and use a size_high region size for the last test.

    These three options must be specified together and are mutually exclusive with the regionsize option.

-S size | sizes, --blocksize size | sizes

    Use size ZFS blocks for each test, specified as a comma delimited regular expression with an optional unit suffix. (eg: "-S 1M" means one megabyte.) The supported range is powers of two from 128K through 16M. A range of blocks can be tested as follows: "-S 128K,256K,512K,1M".

-L dmu_flags, --load dmu_flags

    Specify dmuio for regular DMU_IO, ssf for single shared file access, or fpp for per thread access. Use commas to delimit multiple flags. (eg: "-L dmuio,ssf")

-p name, --pool name

    The pool name, which is mandatory.

-M test, --name test

    An arbitrary string that appears in the program output.

-x, --cleanup

    Enable the DMU_REMOVE flag.

-P command, --prerun command

    Invoke command from the kernel before running the test. Shell expansion is not performed and the environment is set to HOME=/; TERM=linux; PATH=/sbin:/usr/sbin:/bin:/usr/bin.

-R command, --postrun command

    Invoke command from the kernel after running the test. Shell expansion is not performed and the environment is set to HOME=/; TERM=linux; PATH=/sbin:/usr/sbin:/bin:/usr/bin.

-G directory, --log directory

    Put logging output in this directory.

-I size, --regionnoise size

    Randomly vary the regionsize parameter for each test modulo size bytes.

-N size, --chunknoise size

    Randomly vary the chunksize parameter for each test modulo size bytes.

-T time, --threaddelay time

    Randomly vary the execution time for each test modulo time kernel jiffies.

-V, --verify

    Enable the DMU_VERIFY flag for trivial data verification.

-z, --zerocopy

    Enable the DMU_READ_ZC and DMU_WRITE_ZC flags, which are currently unimplemented for Linux.

-O, --nowait

    Enable the DMU_WRITE_NOWAIT flag.

-f, --noprefetch

    Enable the DMU_READ_NOPF flag.

-H, --human-readable

    Print PASS and FAIL results explicitly and put unit suffixes on large numbers.

-v, --verbose

    Increase output verbosity.

-? , --help

    Print the usage message.

AUTHORS
The original zpios implementation was created by Cluster File Systems Inc and adapted to ZFS on Linux by Brian Behlendorf <behlendorf1@llnl.gov>. This man page was written by Darik Horn <dajhorn@vanadac.com>.

SEE ALSO
zpool(8), zfs(8)