sio_ntap: Simulated I/O (sio) Manual Page - Network Appliance
Overview
Manual page for the Simulated I/O tool (sio_ntap).
- What is sio_ntap?
- What are the command line options?
- Example Inputs
- Sample Output
- sio_ntap compared to the Unix dd command
sio (acronym for Simulated I/O) is a general purpose I/O load
generator. It performs synchronous I/O's to the specified file(s).
The main purpose is to generate various I/O loads while collecting some basic
statistic. In general, sio allows the user to control:
- Read / Write mix
- Random or Sequential I/O patterns
- Access in various block sizes
- Access over a variable amount of file space (starting at offset 0)
- Adjustable runtime (in seconds)
- Single or multiple concurrent threads performing I/O
- Access to one or more files or devices (e.g. raw devices)
After completing the specified workload, sio generates several basic
statistics:
- I/O's Completed per second
- KB/s Transferred
- Total I/O's completed over the measured interval
sio is meant to enable I/O performance testing without having to create large
application structures (such as databases). For example, sio can
"approximate" a TPC-C like workload by specifying (for instance) a 2
to 1 read/write ratio, of 4k transfer sizes, with the appropriate number of
threads. While the emulation is not exact, the approximation provides
valuable insight into I/O subsystem performance.
Back to Top
The command line options are expressed here (obtained by running sio with no
command line options):
Usage: sio Read% Rand% Blk_Size File_Size Seconds Thread Filename
[Filename]
where
- Read %: Percentage of accesses that are reads (versus writes)
- Rand %: Percentage of accesses that are random (vs sequential)
- Blk_Size: Size of I/O requests that are issued
- FileSize: Size of area to be accessed in the file(s) (can be <= to actual file size; same for all
files)
- Seconds: Run time (specified in
seconds), minimum of 10 seconds (60 or more recommended)
- Threads: Number of concurrent
threads issuing I/O's
- Filename(s): One or more files to target for I/O
optional options
- -noflock: Turn off filelocks. On some host, filelocks prevent host
caching.
- -output -outfile: Send all output to "outfile"
- -direct: Disable filesystem caching - available on solaris, linux and aix.
Back to Top
- Example 1: 100% Random reads of 512 byte xfers to filename1, running for
60 seconds with 1 thread, accessing 1MB of the file
- sio 100 100 512 1m 60 1 filename1
- Example 2: Half reads, half writes of random 4K I/O's, filename1, 10
seconds, 2 threads, 20MB of file accessed
- sio 50 100 4k 20m 10 2 filename1
- Example 3: Sequential writes of 64K I/O's for 60 seconds against filename1
with 1 thread, 10MB of file accessed
- sio 0 0 64k 10m 60 1 filename1
- Example 4: 100% Random reads of 512 byte xfers to filename1, filename2,
filename3, running for 60 seconds with 32 threads, accessing 1GB of each of
the files
- sio 100 100 512 1g 60 1 filename1 filename2
filename3
Back to Top
server% sio 100 100 512 1m 10 1 testfile
Version: 3.00
SIO_NTAP:
Inputs
Read %: 100
Random %: 100
Block Size: 512
File Size: 999936
Secs: 10
Threads: 1
File(s): testfile
Outputs
IOPS: 1995
KB/s: 998
IOs: 19974
The first block of output is simply a restatement of the command line
inputs. Under the "Outputs" column, there are three result
variables.
- IOPS (I/O's Per second): indicates average I/O's per second over the
entire run.
- TPUT (Measured in KB/s): indicates average KB/s transferred over the
entire run.
- IOS: Total I/O's completed over the length of the run.
Beware when making comparisons among platforms or technologies. The
most common issue is comparing I/O's that are cached on the I/O device with some
other measurement of unCached I/O's.
Back to Top
Many times, "dd" is the first "performance test" that is
run against a new I/O subsystem. As a water test, this is fine. As a
real measure of overall performance, dd and sio differ in a number of ways:
- Single threaded. dd is a single threaded test. While this
provides some measure of throughput, it does not measure "maximum"
throughput, since a single threaded requestor is heavily affected by I/O
latency. sio allows both single thread and multiple thread workloads.
- dd has a fairly restricitve data movement paradigm: read from one file
write to another. sio allows simulation of a wide range of workloads,
including sequential and random I/O's, read and write workloads, etc.
- dd's run time is dictated by the file size. To obtain really long
runs, dd needs either a large file or requires repetitive runs (making stats
collection difficult). sio can run any amount of time on any size
file. This simply makes testing sustained performance workloads
easier.
- dd's stats are somewhat limited. sio provides the three most useful
stats in a concise form. Also, sio has the capability to collect more
extensive statistics in certain environments.
Back to Top
Revised: July 01, 2004