diskperf(1)
diskperf - Disk Performance Testing Utility
As shipped in IRIX 6.5.7. Unchanged since IRIX 6.5.
NAME diskperf - Disk Performance Testing Utility SYNOPSIS 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> DESCRIPTION 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. OPTIONS -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. 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 : 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 RAW DEVICE TESTING 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 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 TESTING 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 BUGS None known SEE ALSO diskprep(1M), diskalign(1M), xlv_make(1M), mkfs(1M) NOTES None AUTHOR Will McGovern ( willmc@sgi.com ) Advanced Entertainment Systems Division Silicon Graphics Inc.