Content-type: text/html
Man page of diskx
diskx
Section: Maintenance Commands (8)
Index
Return to Main Contents
NAME
diskx - disk exerciser program
SYNOPSIS
/usr/field/diskx
[
option(s)
]
[
parameter(s)
]
DESCRIPTION
The diskx program is intended to test various
aspects of disk driver functionality.
These tests provide more comprehensive functional coverage than the dskx
utility. Main functional areas which are tested include:
-
- •
-
Read testing.
- •
-
Write testing.
- •
-
Seek testing.
- •
-
Performance analysis.
Some of the tests involve writing to the disk. For this reason
the exerciser should be used with caution on disks which may contain
useful data which could be over-written. Tests which write to the
disk will first check for the existence of file systems on the test
partitions and partitions which overlap the test partitions. If a
file system is found on these partitions, a prompt will appear
asking if testing should continue.
There are a number of options that diskx
accepts. These options control which tests are performed and also
specify parameters of test operation.
FLAGS
The following is a description of the diskx
options:
- -h
-
Help. Displays a help message describing test options and functionality.
- -p
-
Performance test. Read and write transfers will be timed to
measure device throughput. No data validation is performed as
part of this test. Testing will be done using a range of transfer
sizes if the -F
option is not specified. The transfer size used for testing a range
of record sizes will start at the minimum value
and be incremented by the reciprocal of the number of specified "splits".
For example if the number of splits is set to 10, the
transfer size will start at the minimum value, the next transfer
size will be the minimum value added to 1/10th of the range of
values, similarly the next transfer size will increase by 1/10th of
the range during each testing interval. If a specific number of
transfers are not specified, the transfer count will be set to
allow the entire partition to be read or written; this number will
vary depending on the transfer size and the partition size.
The performance test will run until completed or interrupted
and is not time limited by the -minutes
parameter. This test may take a long time to complete depending
on the test parameters.
- -r
-
Read-only test. Reads from the specified partitions.
-
This test is useful for generating system I/O activity. Because
it is a read-only test, it is possible to run more than one instance
of the exerciser on the same disk.
- -w
-
Write test. The purpose of this test is to verify that data can
be written to the disk and read back for validation. Seeks are
also done as part of this test. This test provides the most
comprehensive coverage of disk transfer functionality due to
the usage of reads, write, and seeks. The test also combines
sequential and random access patterns.
The test performs the following operations using a range of
transfer sizes. A single transfer size will be utilized if the -F
attribute is specified. The first step is to sequentially
write the entire test partition (unless the number of transfers
has been specified using -num_xfer). Next the test partition
is sequentially read. The data read from disk is examined to
insure that it is the same as what was originally written. At
this point if random transfer testing has not been disabled
(using the -S attribute) then writes will be issued to random
locations on the partition. After completion of the random writes,
reads will be issued to random locations on the partition. The
data read in from random locations will be examined for validity.
The following options are testing attributes which modify how tests are
to be run.
- -F
-
Perform fixed size transfers. If this option is not specified
transfers will be done using random sizes. This attribute is associated
with the following tests: -p, -r, -w.
- -i
-
Interactive mode. Under this mode the user will be prompted
for various test parameters. Typical parameters include the
transfer size and the number of transfers.
The following scaling factors are allowed:
-
- •
-
k or K - kilobyte (1024 * n)
- •
-
b or B - block (512 * n)
- •
-
m or M - megabyte (1024 * 1024 * n)
-
For example 10k would specify 10240 bytes.
- -O
-
Perform the specified test once. If this option is specified with the
sequential transfer attribute, the test will halt after the entire disk
has been read or written. This attribute is associated with the -r
and -w tests.
- -Q
-
Do not perform performance analysis of read transfers. This
will cause only write performance testing to be performed. To
perform only read testing and to skip the write performance tests
the -R attribute must be specified. This attribute is
associated with the following tests: -p.
- -R
-
Opens the disk in read-only mode. This attribute is associated with all
tests.
- -S
-
Performs sequential transfers.
In order to achieve maximum throughput the -S
attribute should be specified on the command line.
Transfers will be performed to sequential disk locations.
This may slow down the
observed throughput due to associated head seeks on the device.
If this option is not specified
transfers will be done to random disk locations.
This attribute is associated with the following tests: -p, -r,
-w.
- -T
-
Directs output to the terminal. This attribute is useful when
output is directed to a logfile using the -o
option. By also specifying this parameter after the -o
filename options will cause output to be directed to both the terminal
and the log file. This attribute is associated with all tests.
- -X
-
Does not check for disk labels or partition overlaps. This option
should be used when testing DRD (Distributed Raw Disk) or LSM (Logical Storage
Manager) devices. See the -f and -x options also.
- -Y
-
If any of the selected tests write to the disk, the disk will
be examined for any existing file systems. If it appears that file
systems exist, the exerciser will prompt for confirmation before
proceeding. When this attribute is specified the exerciser will
NOT prompt for confirmation before proceeding.
The following options are used to specify test parameters. These
options are followed by an associated parameter specification.
Test parameters may also be modified in an interactive manner.
Refer to the description of the -i
test attribute for details. To specify a numerical value, type the
parameter name followed by a space and then the number. For example
-perf_min 512
The following scaling factors are allowed:
-
- •
-
k or K - kilobyte (1024 * n)
- •
-
b or B - block (512 * n)
- •
-
m or M - megabyte (1024 * 1024 * n)
To illustrate this, -perf_min 10K,
causes transfers to be done in sizes of 10240 bytes.
- -code
-
Specifies a code to be imbedded in the high byte of a long
word pattern. This option is only valid with 64 bit patterns,
-pattern 8 or -pattern 99. See also the -pattern
option. This parameter is associated only with the -w test
option.
- -debug
-
Specifies the level of diagnostic output to display. The
higher this number is, a greater volume of output will be produced
describing the operations the exerciser is performing.
This parameter is associated with all tests.
- -err_lines
-
Specifies the maximum number of error messages may be produced as a
result of an individual test. Limits on error output is done to prevent
a flooding of diagnostic messages in the event of persistent errors.
This parameter is associated with all tests.
- -f devname
-
Used to specify the device special file to perform testing on. The
devname parameter is the name associated with either a block or character
special file which represents the disk to be tested. The file name must
begin with an "r" as in rz0 or rz1. The last character of the file name
may represent the disk partition to test, if no partitions are specified
it is assumed that testing is to be done to all partitions. For example
if the specified devname is /dev/rrz0 then testing will be done to all
partitions. If devname is /dev/rrz0a then testing will be done
on only the "a" partition. This parameter must be specified
in order to allow any testing to be performed.
This parameter is associated with all tests.
On a cluster system using DRD devices, or when using LSM, use the
-x
option
with the
-f
option to specify the pathname. You must also use the -X option and
specify a value for the the -numb_blocks option when using -x.
(see the example section).
- -minutes
-
Specifies how many minutes to allow testing to continue.
This parameter is associated with the following tests: -r, -w.
- -max_xfer
-
Specifies the maximum transfer size to be performed. When transfers are
to be done using random sizes, the sizes will be within the range specified
by the -max_xfer and -min_xfer parameters.
If fixed size transfers are specified (see the -F test attribute)
then transfers will be done in a size specified by the -min_xfer
parameter. Transfer sizes to the character special file should be
specified in multiples of 512 bytes. If the specified transfer size
is not an even multiple the value will be rounded down to the nearest
512 bytes. This parameter is associated with the following tests:
-r, -w.
- -min_xfer
-
Specifies the minimum transfer size to be performed.
This parameter is associated with the following tests: -r, -w.
- -num_blocks
-
Specifies the range of disk blocks that
diskx
should use. Use this option when testing DRD devices or when
using LSM.
- -num_xfer
-
Specifies how many transfers to perform before changing
the partition that is currently being tested. This parameter is
only useful when more than one partition is being tested. If this
parameter is not specified then the number of transfers will be set
to be enough to completely cover a partition.
This parameter is associated with the following tests:
-r, -w.
- -o filename
-
Sends output to the specified filename. The default
is to not create an output file and send output to the terminal.
This parameter is associated with all tests.
- -pattern #
-
This option specifies the write pattern to be used when exercising a disk.
-
- •
-
1 indicates a byte pattern (8 bits)
- •
-
2 indicates a short word pattern (16 bits)
- •
-
4 indicates a int word pattern (32 bits)
- •
-
8 indicates a long word pattern (64 bits)
- •
-
99 indicates a repeating pattern (64 bits)
-
The default is a long word pattern (64 bits). This parameter is associated
only with the -w test option. See also the -code option.
- -perf_max
-
Specifies the maximum transfer size to be performed.
When transfers are to be done using random sizes, the sizes will
be within the range specified by the -perf_min
and -perf_max
parameters. If fixed size transfers are specified (see the -F
test attribute) then transfers will be done in a size specified
by the -perf_min
parameter. This parameter is associated with the following tests:
-p.
- -perf_min
-
Specifies the minimum transfer size to be performed.
This parameter is associated with the following tests: -p.
- -perf_splits
-
Specifies how the transfer size will be changed when
testing a range of transfer sizes. The range of transfer sizes is
divided by perf_splits to obtain a transfer size increment. For
example if perf_splits is set to 10, tests will be run by starting
with the minimum transfer size and increasing the size by 1/10th of
the range of values for each test iteration. The last transfer
size will be set to the specified maximum transfer size.
This parameter is associated with the following tests: -p.
- -perf_xfers
-
Specifies the number of transfers to be performed in
performance analysis. If this value is not explicitly specified
the number of transfers will be set equal to the number required
to read the entire partition.
This parameter is associated with the following tests: -p.
- -x
-
Specifies that the pathname quoted should be used without specifying
partition letters. This is useful when testing a
DRD (Distributed Raw Device) in a cluster, or when LSM is in use.
EXAMPLES
The following are example command lines with a description of what
the resulting test action will be.
diskx -f /dev/rrz0 -r
The above example will perform read-only testing on the
character device special file that rrz0 represents. Since
no partition is specified, reading will be done from all
partitions. The default range of transfer sizes will be used.
Output from the exerciser program will be displayed on the
terminal.
diskx -x -X -f /dev/rdrd/drd1 -r -num_blocks 100000
diskx -x -X -f /dev/vol/vol1 -r -num_blocks 100000
The above examples performs read-only testing. The first example
specifies a DRD device, and the second an LSM volume.
diskx -f /dev/rz0a -o diskx.out -p -n -S
Performance tests will be run in the "a" partition of rz0.
Program output will be logged to the file diskx.out.
The -S option will cause sequential transfers for best test results.
Testing will be done over the default range of transfer sizes.
diskx -f /dev/rrz0 -r &; diskx -f /dev/rrz1 -r &; diskx -f /dev/rrz2 -r &
This command will run the read test on all partitions of the disks.
The disk exerciser is being invoked here as 3 separate
processes. In this manner the 3 processes will be generating
a lot of system I/O activity. This may be useful for system
stress testing purposes.
diskx -f /dev/rrz17b -w -pattern 99
This command will run the write test on partition "b" of rz17. The repeating
long word pattern will write the following test pattern to the disk:
resulting test pattern written:
<address> <quad word> <quad word>
0000020 0007060504030201 0007060504030201
0000030 0007060504030201 0007060504030201
0000040 0007060504030201 0007060504030201
diskx -f /dev/rrz17b -w -pattern 8 -code 255
This command will run the write test on partition "b" of rz17. The specified
pattern and code will write the following test pattern to the disk:
resulting test pattern written:
<address> <quad word> <quad word>
0000020 ff00000000000004 ff00000000000005
0000030 ff00000000000006 ff00000000000007
0000040 ff00000000000008 ff00000000000009
PROGRAM OUTPUT
The following are descriptions of some of the tables which are
produced by the disk exerciser:
This is the header used to describe the results of the transfer
tests followed by a description of each column:
-
Disk Transfer Statistics
Part Seeks Seek_Er Writes Writ_Er MB_Write Reads Read_Er MB_Read Data_Er
- Part
-
A letter used to represent the disk partition.
- Seeks
-
The number of seek system calls that were issued.
- Seek_Er
-
The number of seek system calls returning error status.
- Writes
-
The number of write system calls issued.
- Writ_Er
-
The number of write system calls returning error status.
- MB_Write
-
The number of megabytes of data written.
- Reads
-
The number of read system calls issued.
- Read_Er
-
The number of read system calls returning error status.
- MB_Read
-
The number of megabytes of data read.
- Data_Er
-
The number of transfers which had data validation errors.
This does not specify the number of bytes that were in
error; rather it specifies that the transfer had at least
one byte in error.
This header is used to describe the results of the performance tests.
-
Performance test results:
Part- Transfer Count of Read Write Transfer
ition Size Transfers Rate Rate Errors
- Partition
-
A letter used to represent the disk partition.
- Transfer Size
-
This is the size of the read or write system call.
- Count of Transfers
-
Specifies the number of read or write system calls.
- Read Rate
-
The observed disk throughput obtained by timing the
specified number of read system calls.
- Write Rate
-
The observed disk throughput obtained by timing the
specified number of write system calls.
- Transfer Errors
-
Shows how many read and write system calls resulted
in a return value of error status. If this value
is nonzero then the values displayed in the Read
and Write Rate columns may not accurately reflect
correct device performance.
RELATED INFORMATION
getdiskbyname(3), disktab(4), cmx(8), fsx(8), shmx(8), tapex(8), memx(8)
See also the Trucluster(TM) Administration guide.
delim off
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- FLAGS
-
- EXAMPLES
-
- PROGRAM OUTPUT
-
- RELATED INFORMATION
-
This document was created by
man2html,
using the manual pages.
Time: 02:40:28 GMT, October 02, 2010