This utility can be used to test performance of storage devices.
First, one need to generate file with I/O operations:
# set mediasize=`diskinfo /dev/<device> | awk '{print $3}'`
# set sectorsize=`diskinfo /dev/<device> | awk '{print $2}'`
# raidtest genfile -s $mediasize -S $sectorsize -n 50000
It will generate test which contains 50000 I/O requests with random
size and random offset. Size is a multiple of sectorsize, but less than or
equal to 128kB (maxium size of I/O request). I/O request type (READ or WRITE)
is random as well.
All test data are stored in 'raidtest.data' file in current working directory.
To run test, one should type:
# raidtest test -d /dev/<device> -n 10
This command will read test data from 'raidtest.data' file, run 10 processes
which will be used to send requests to the given device in parallel.
When test is finished you will see statistics:
Bytes per second: <x>
Requests per second: <y>
If you compare performance of two storage devices, use the same data file!
usage: raidtest genfile [-frw] <-s mediasize> [-S sectorsize] <-n nrequests> [file]
raidtest test [-Rrw] <-d device> [-n processes] [file]
where:
-d device path to tested device
-f if raidtest.data file or specified file already exists,
remove it and create new one
-n nrequests number of requests to generate
-n processes number of processes to run
-r generate/run only READ requests
-R generate random data for write requests
-s size of destination device
-S sector size of destination device
-w generate/run only WRITE requests
file path to the data file instead of default 'raidtest.data'
This qjail version only supports the RELEASE-10.x series of releases.
Qjail [ q = quick ] is a 4th generation wrapper for the basic chroot jail
system that includes security and performance enhancements. Plus a new level
of "user friendliness" enhancements dealing with deploying just a few jails or
large scale jail environments consisting of 100's of jails.
Qjail uses the jail(8) jail.conf method. This provides the ability to enable
the following options on a per-jail basis. exec.fib, securelevel, allow.sysvipc,
devfs_rulesets, allow.raw_sockets, allow.quotas, allow.mount.nullfs,
allow.mount.tmpfs, allow.mount.zfs, vnet.interface, and vnet. The vnet option
gives a jail its own network stack using the experimental vimage kernel module.
The vnet option has only been tested on i386 and amd64 equipment.
Qjail requires no knowledge of the jail command usage. It uses "nullfs" for
read-only system executables, sharing one copy of them with all the jails.
Uses "mdconfig" to create sparse image jails. Sparse image jails provide a
method to limit the total disk space a jail can consume, while only occupying
the physical disk space of the sum size of the files in the image jail.
Ability to assign ip address with their network device name,
so aliases are auto created on jail start and auto removed on jail stop.
Ability to create "ZONE"s of identical qjail systems, each with their own
group of jails.
Ability to designate a portion of the jail name as a group prefix so the
command being executed will apply to only those jail names matching that prefix.
Qjail has been incorporated into the Finch open source project,
see http://dreamcat4.github.io/finch/ for details.