sraw(8) benchmark raw scsi I/O performance under linux


sraw [ -fiv6 ] scsi-device [ bstart [ bstep ] ]


This program basically reads the specified scsi device and measures the throughput. Note that the filesystem *AND* the buffer cache are bypassed by this code, this program was designed to benchmark the naked scsi drivers by themselves without the need to account for the overhead of any other portion of the kernel. It also could be used to benchmark disk read throughput.

This program does a series of reads of the disk, of consecutive areas on the disk. The device is first queried to determine the sector size for the device, and then the series of reads is begun. About 5.0 Mb is read from the device, and then the performance numbers are reported. Note that since the buffer cache is completely bypassed, there is no need to be concerned about cache hits or anything.

Output of sraw is a set of lines, 4 numbers per line: blocksize, elapsed time, nblocks and throughput (in bytes per second).

scsi-device is either a block device (e.g. /dev/sda, /dev/scd0) or a generic SCSI device (e.g. /dev/sg0).


set FUA (Force Unit Access) bit during read. Data is then read from media instead of internal drive cache.
use legacy ioctl instead of new SG I/O layer (will not work on 2.6 kernel and block devices).
more verbose output.
use 6-bytes instead of 10-bytes read command. In this case, only the first GB of data could be read from media.
starting block to check different zones on ZBR discs
factor for sequential stepping, default 1. Use 0 for reading always the same blocks (from cache)


sraw could issue input/output errors when reading too many blocks at the same time from a block device like /dev/sda. To get rid of them, use /dev/sgN instead.


sraw was first written by Eric Youngdale. Extensions (-v, -f, -6, SG IO, man page) were written by Eric Delaunay.


sraw is available at