phybs
— reveal a
storage device's physical block size
phybs |
[-rsw ] [-l
minsize] [-h
maxsize] [-t
total] device |
The phybs
utility runs a series of I/O
benchmarks designed to reveal a storage device's physical block size by
comparing the performance of small and large I/O operations at various
(mis-)alignments.
The phybs
utility makes a series of passes
with increasing block sizes. In each pass, it either reads or writes (or
both) a number of non-consecutive blocks at increasing offsets relative to
the ideal alignment, which is assumed to be multiples of the block size. The
results are presented in terms of time elapsed, transactions per second and
kB per second.
If the device's physical block size is larger than its logical
block size, peak performance will be obtained when reading or writing
multiples of the physical block size at offsets which are also multiples of
the physical block size, while I/O operations which do not meet these
criteria will be significantly slower.
The following options are available:
-h
maxsize
- Specify the maximum block size to test. This must be a power of two and a
multiple of the minimum block size (see
-l
). The
default is eight times the minimum block size.
-l
minsize
- Specify the minimum block size to test. This must be a power of two and a
multiple of the device's logical block size. The default is the device's
logical block size.
-r
- Perform read operations. This is the default.
-s
- Open the device in synchronous mode.
-t
total
- Specify the total amount of data to read or write in each pass. This must
be a power of two and a multiple of the maximum block size (see
-h
). For best results, it should also be
significantly larger than the device's on-board cache. The default is 128
MB.
-w
- Perform write operations.
The phybs
utility can be used on files as
well as raw devices, but the characteristics of the underlying file system
will greatly influence the results, possibly to the point where they can not
reveal anything of interest about the actual device.
The phybs
utility reports the benchmark
results, but makes no attempt at interpreting them.
The phybs
utility returns
EX_OK if the benchmark completed successfully,
EX_USAGE if the parameters specified on the command
line were invalid, EX_PERM if the user does not have
permission to open the specified device, EX_IOERR if
it was interrupted by an I/O error, and EX_OSERR if it
was interrupted for any other reason.
The phybs
utility and this manual page
were written by Dag-Erling Smørgrav
⟨des@FreeBSD.org⟩.