diskperf(1) diskperf(1)
diskperf - Disk Performance Testing Utility
diskperf [-W] [-D] [-R] [-L] [-n<name>] [-t<n>] [-s<f>]
[-d<f>] [-c<n>[k|m|g]] [-r<n>[k|m|g]]
[-m<n>[k|m|g]] <testpath>
The purpose of this utility is to measure the performance of a disk
configuration as either a raw volume or with a filesystem such as XFS. A
number of different test patterns are run including forward and backward
sequential as well as random seek read/write patterns. The output is
tabulated in a form usable for processing by other utilities such as
gnuplot for further analysis.
-W By default diskperf only performs read tests. If this switch is
supplied, write tests will also be done.
Raw write testing will destroy partition contents !!
For filesystem tests, any contents of the test file will be
destroyed. Note that is the test file exists it may grow if the end
of file is reached before the test time expires. If the test file
does not exist it will be created.
-D In the case of a filesystem test, this switch forces diskperf to use
direct I/O when accessing the test file. Direct I/O is only
supported on EFS, XFS and NFS ( via BDS ) filesytems.
This switch has no effect for raw tests.
-R Forces testing to take place on the real time subvolume of an XLV
volume built with xlv_make.
-L In the case of a raw test, forces testing to take place on the log
subvolume of an XLV volume built with xlv_make.
This switch has no effect for filesystem tests.
-n name
Specifies an arbitrary identifying name for the test which will
appear in the test output. This option is useful to uniquely label
results when running from shell scripts.
-t time
Specifies the duration in seconds for each test component. This
allows limiting of the run time for individual tests. Care should be
taken to use a test time long enough to give a representative result
from the disk configuration.
Page 1
diskperf(1) diskperf(1)
The default is 10 seconds.
-s factor
Specifies a floating point scaling factor for all the results. This
is useful for obtaining per-disk performance characteristics.
The default scaling factor is 1.0
-d seconds
Specifies a floating point delay in seconds between each I/O
request. This is useful for multi-thread tests ( ie. multiple
diskperfs running on the same volume ) to alleviate the problem of
single threads monopolizing access to the disk hardware, which can
be related to the fairness policies of both the disk hardware and
the scheduler.
The default delay is 0.0 ( no delay )
-c size[k|m|g]
In the case of a filesystem test, this switch forces diskperf to
create the test file specified in <testpath> to the specified size
in bytes, kilobytes, megabytes or gigabytes ( using suffixes ). By
default, diskperf assumes the test file is an existing file. This is
useful if tests need to be done on existing representative data
files, or particular files which may be causing problems for an
application because of disk errors, fragmentation etc.
This switch has no effect for raw tests.
-r size[k|m|g]
Specifies the minimum request size in bytes, kilobytes, megabytes or
gigabytes ( using suffixes ). Testing will start at this request
size and progressively double until the maximum request size is
exceeded.
For striped subvolumes the default is the stripe size. Otherwise,
the default value is 16k.
-m size[k|m|g]
Specifies the maximum request size in bytes, kilobytes, megabytes or
gigabytes ( using suffixes ). This value defaults to the greater of
the kernel maximum allowed DMA size ( controlled by the maxdmasz
systune parameter ) and the maximum DMA size for the device.
testpath
Specifies the path to the file or raw device to test.
For filesystem tests this is simply a pathname for a test file to be
created ( or used if -N ) for performance testing. For example :
Page 2
diskperf(1) diskperf(1)
diskperf -D -r4k -m1m /d2/testfile
diskperf -W -N -D -R /disk6/problemfile
For raw tests, the is the pathname to a character device. For
example :
diskperf -r512k -m8m /dev/rdsk/dks10d1s7
diskperf /dev/rxlv/striped_volume
This is the lowest level of disk testing and bypasses the filesystem
layer and hence eliminates all overhead normally incurred when accessing
the disk via a filesystem. Note that raw tests will require root
priveleges to access to raw disk character
The main reason for using a raw test is to obtain measurements close to
the physical capabilities of the disk hardware. This gives a set of
performance ceilings to which filesystem or application level
measurements can be compared.
Also, because a raw test has the freedom to access the entire addressable
space of the disk partition, accurate and representative worst case
random seek read/write measurements can be obtained because the seek
distance is not bounded by the size of a test file, as is the case with
filesystem level tests.
EXAMPLE RAW TEST
# diskperf -W -n "FC Test #1" -t5 -m16m /dev/rdsk/dks15d1s7
#---------------------------------------------------------
# Test name : FC Test #1
# Test date : Sun Jul 20 19:05:34 1997
# Test machine : IRIX64 blob 6.4 02121744 IP27
# Test type : Raw data subvolume
# Request sizes : min=16384 max=16777216
# Parameters : direct=0 time=5
# path=/dev/rdsk/dks15d1s7
# Device size : 142258752 blocks
#---------------------------------------------------------
# req_size fwd_wt fwd_rd bwd_wt bwd_rd rnd_wt rnd_rd
# (bytes) (MB/s) (MB/s) (MB/s) (MB/s) (MB/s) (MB/s)
#---------------------------------------------------------
16384 9.28 10.71 1.97 1.54 1.01 0.85
32768 16.53 19.30 3.50 3.07 1.99 1.66
65536 27.28 32.32 6.57 5.75 3.92 3.22
131072 36.81 48.97 11.98 10.52 7.46 6.13
262144 50.53 65.90 20.16 17.93 13.54 11.24
524288 61.98 79.62 29.37 26.72 23.09 19.61
1048576 68.34 88.94 38.32 36.26 35.52 31.46
2097152 71.65 88.86 45.16 44.73 47.45 44.39
4194304 72.31 88.90 50.05 49.40 55.91 56.37
Page 3
diskperf(1) diskperf(1)
8388608 71.93 88.81 50.73 52.16 60.39 63.18
16777216 73.40 88.84 50.41 53.83 60.13 69.33
Filesystem tests perform all I/O activity through whatever filesystem is
layered on the disk device. These tests are more representative of
expected real world application performance because they address the disk
through the same mechanisms used by applications working with
filesystems. Filesystem tests perform all their testing within a supplied
( or created ) test file. Care must be taken as filesystem tests can
only work within the bounds of the test file so try to work with as big a
test file as possible to get more representative results.
EXAMPLE FILESYSTEM TEST
# diskalign -n "video" -r6m '/dev/dsk/dks[15-17]d1s7' | xlv_make
video
video.data
video.data.0
video.data.0.0
Object specification completed
# mkfs /dev/xlv/video
meta-data=/dev/xlv/video isize=256 agcount=204 agsize=261504
data = bsize=4096 blocks=53346816 imaxpct=25
log =internal log bsize=4096 blocks=1000
realtime =none extsz=65536 blocks=0, rtextents=0
# mount /dev/xlv/video /video
# diskperf -W -D -n "Striped" -c2g /video/testfile
#---------------------------------------------------------
# Test name : Striped
# Test date : Sun Jul 20 20:42:57 1997
# Test machine : IRIX64 blob 6.4 02121744 IP27
# Test type : XFS striped data subvolume
# Disk striping : group=3 unit=4096
# Request sizes : min=6291456 max=67125248
# Parameters : direct=1 time=10
# path=/video/testfile
# XFS file size : 2202009600 bytes
#---------------------------------------------------------
# req_size fwd_wt fwd_rd bwd_wt bwd_rd rnd_wt rnd_rd
# (bytes) (MB/s) (MB/s) (MB/s) (MB/s) (MB/s) (MB/s)
#---------------------------------------------------------
6291456 63.94 245.11 67.69 180.23 66.02 171.52
12582912 78.15 249.03 80.68 210.87 79.22 204.64
25165824 87.72 251.56 89.32 229.63 88.77 228.97
50331648 91.73 239.29 92.22 228.00 92.10 230.26
None known
Page 4
diskperf(1) diskperf(1)
SEE ALSO
diskprep(1M), diskalign(1M), xlv_make(1M), mkfs(1M)
None
Will McGovern ( [email protected] )
Advanced Entertainment Systems Division
Silicon Graphics Inc.
PPPPaaaaggggeeee 5555 [ Back ]
|