| Skip Navigation Links | |
| Exit Print View | |
|
Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual Sun QFS and Sun Storage Archive Manager 5.3 Information Library |
1. User Commands (Man Pages Section 1)
2. Maintenance Commands (Man Pages Section 1M)
3. Library Functions (Man Pages Section 3)
4. Library Functions (Man Pages Section 3X)
5. File Formats (Man Pages Section 4)
NAME
pdvt - POSIX Device Verification Tool
SYNOPSIS
pdvt [-b] [-B] [-c block_count] [-C] [-d] [-D] [-e
data_error_limit] [-E io_error_limit] [-f] [-g stripe_group]
[-G sync_file] [-h] [-i stride[k|m|g]] [-k offset[k|m|g|t]]
[-l loops] [-m buffer[k|m|g|t]] [-o rw|wr|r|w] [-p] [-P
a|o|0|r] [-q queue_size] [-r] [-R read_threads] [-s
block_size[k|m]] [-S file_size[k|m|g|t]] [-T] [-u] [-v
log_mask] [-V] [-W write_threads] [-z seconds] filename [
filename_out ]
AVAILABILITY
Oracle Corporation
DESCRIPTION
The POSIX Device Verification Test ("PDVT") uses POSIX
threads, or pthreads, to test RAID device and file system
I/O performance.
PDVT uses the concept of thread pools. PDVT (the boss
thread) creates a specified number of worker threads. These
worker threads survive for the duration of the program. The
PDVT boss thread creates I/O requests and puts these
requests on a work queue. Worker threads remove I/O
requests from the work queue and process them. When a
worker thread completes an I/O request, it removes another
one from the work queue if the queue is not empty.
OPTIONS
-b Perform backwards I/O.
-B Print I/O buffer information.
-c block_count
The number of blocks to be written/read.
-C Specifies that I/O use the page cache.
-d Specifies direct I/O: I/O should not use the page
cache.
-D Live dangerously and allow PDVT to write to slices that
start at cylinder 0.
-e data_error_limit
Specifies the maximum number of data miscompares that
can occur before the test is stopped.
-E io_error_limit
Specifies the maximum number of I/O errors that can
occur before the test is stopped.
-f Set read process to follow an active writer.
-g stripe_group
Specifies the number of the striped group where the
file is to be preallocated. Stripe_group is a number
0..n where n matches the gXXX devices configured in the
SAM-QFS master configuration file. This option is only
processed if -p is specified and it only applies to
SAM-QFS filesystems with configured stripe groups.
-G sync_file
Threads will wait to perform I/O until sync_file
exists. Once test is complete the sync_file will be
removed.
-h Print usage information.
-i stride[k|m|g]
Number of bytes to stride
-k offset[k|m|g|t]
Byte offset to start writing or reading from.
-l loops
Number of times to loop before closing the file. This
option is useful for testing cache performance.
-m bufsize[k|m|g|t]
Buffer size for random data pattern. Pattern is based
on file name and can therefore regenerate the data if
using the same file name. Used in combination with P r
option.
-o rw|wr|r|w
Operation options:
rw - Read and write a file at the same time
wr - Write then read a file
r - Read a file
w - Write a file
-p Specifies the file should be preallocated. Striping is
also permitted if striped groups have been configured
as part of the filesystem. This option only applies to
SAM-QFS filesystems.
-P a|o|0|r
The data pattern:
a - ascending pattern based on file offset
o - ones pattern
0 - zeros pattern
r - random pattern (requires -m option)
-q queue_size
Specifies the number of the entries that will be out-
standing in the work queue. The queue_size should be
larger than read_threads.
-r Perform random I/O
-R read_threads
Specifies the number of the threads that will be out-
standing for read. If read_threads is less than
write_threads, write_threads will be used.
-s block_size[k|m]
Size of blocks to be written/read.
-S file_size[k|m|g|t]
Size of file to be written/read. File size and block
count are mutually exclusive.
-T Start timing at memory allocation instead of I/O start.
-u Unlink file when finished.
-v log_mask
Set logging mask to print info, errors, results and/or
debugging information. Interpreted in octal by
default, and has a default value of 03 (print test
results and error messages).
001 - Print test results (on by default)
002 - Print error messages (on by default)
004 - Print debugging information during test
010 - Print lots of debugging information during test
020 - Print read and/or write return values
-V Data will be verified on the read pass. The times will
include this comparison time.
-W write_threads
Specifies the number of the threads that will be out-
standing for write.
-z seconds
Used in combination with f option to specify number of
seconds to sleep before retrying a read request.
Default is 50000000 nanoseconds.
EXAMPLES
Example 1: Write a file using 4 write threads and 8 queued
requests
pdvt -o w -W 4 -q 8 -s 16m -S 4g /path/file.dat
Example 2: Write a file with a random buffer for data verif-
ication
pdvt -P r -m 4g -o w -W 4 -q 8 -s 16m -S 4g /path/file.dat
Example 3: Reading previous file with data verification
pdvt -P r -m 4g -V -o r -R 4 -q 8 -s 16m -S 4g
/path/file.dat
NOTES
The output of PDVT will vary based on the log level
selected. Test results and errors will be displayed by
default, but setting the log level to something like 7 will
print the test results as well as the test configuration.
Output for results and information are comma separated
values that can be imported into a spreadsheet.
Results: operation,block size(KB),fsize(KB),write
threads,read threads,queue size, wall time,user time,system
time,throughput(MB/sec)
Using the log level 10 will result in a significant amount
of output showing what PDVT is doing. Additionally, log
level 4 will print out each buffer as it is compared with a
data verification read.
The random data feature uses the file name provided on the
command line to produce a seed that is fed to the
srand48(3C) function call. In order to verify a file once
it is written, the file name must be the same as given on
the write command.
Performance of a verification read should not be taken into
consideration as the throughput represents the time not only
to read a file, but also to verify each buffer. The
verification process can add many seconds to a read.
SEE ALSO
dvt(1)
sam_advise(3), sam_setfa(3)
mcf(4)