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)