Storage Benchmark with Oracle ORION

Finaly we have easy oracle tool to do the job of testing IO performance, very easy to use. ORION (ORcle IO Numbers) mimics the type of I/O performed by Oracle databases, which allows you to measure I/O performance for storage systems without actually installing Oracle. It used to be available to download for a number of platforms from OTN, but since is included in the “$ORACLE_HOME/bin” directory of Grid Infrastructure (GI) and database installations, download is no longer available.

Adventages respect other Benchmarks (IOmeter) is that Orion uses code-base similar to Oracle database kernel tests only I/O subsystem with minimal CPU consumption, Async I/O is used to submit concurrent I/O requests, each run includes multiple data points / tests, scaling concurrency of small and large I/Os.

ORION has one problem, it cannot perform a filesystem performance analysis. It was only designed to be started against devices. ORION can be used to test performances of disks, luns, SAN, DAS, or even certain type of NAS.

ORION have some interesting run modes, there more combinations of course (orion -help):

– simple, simulate OLTP systems typically generating small random read activities. The I/O sizes are equivalent to the database block size (usually 8KB) and the application analyzes the following database I/O KPIs:
IOPS (I/O Per seconds) and I/O latency average (I/O turn-around time) per request.

– oltp, same as above but this time use I/O reads OLTP-like (option -run oltp) you can specify the percentage of writes.

– seq (-type seq) simulate large sequential I/Os, large sequential I/Os which can be caused by database exports (through data pump), RMAN backup, or of course a data warehouse environment. In this case, large I/Os will be simulated (1 MB per default).

– dss (option -run dss), large random I/O, simulates large I/Os stripped over several disk, allowing to simulate parallel activities. In this case, multiple large I/O streams are started against the available disks.

– normal, (option -run normal) simulates mixed activity, simulate together small random I/Os and large sequential or random I/Os. of course, this workload type is useful for OLTP systems confronted with performance issues caused by online backups for instance. A percentage of writes can also be simulated during these tests. Matrix” workload is perfectly adapted to this simulation.

To run the test you need to know the LUNs you will be using for Oracle

For testing purposes you can fake the LUNs using the ext3 filesystem.

# mkdir /luns
# dd if=/dev/zero of=/luns/lun1 bs=1024k count=10
# dd if=/dev/zero of=/luns/lun2 bs=1024k count=10
# dd if=/dev/zero of=/luns/lun3 bs=1024k count=10
# dd if=/dev/zero of=/luns/lun4 bs=1024k count=10

Next, create a file to hold the LUN configuration. In this case I will call my test “oriontest.lun”, so LUN
configuration file must be called “oriontest.lun”. It is assumed it is present in the current directory.
The file should contain a list of the luns used in the test.


If you don’t specify a test name, the utility assumes the test is called “orion” and looks for the presence
of the “orion.lun” file.

we are going to do some test starting with simple mode ( Tests random small (8K) IOs at various loads,
then random large (1M) IOs at various loads.) as root then:

export ORACLE_HOME=/apps/products/oracle/
cd /home/oracle/orion

$ORACLE_HOME/bin/orion -run simple -testname oriontest
ORION: ORacle IO Numbers — Version
Calibration will take approximately 9 minutes.
Using a large value for -cache_size may take longer.

Maximum Large MBPS=312.07 @ Small=0 and Large=2

Maximum Small IOPS=4963 @ Small=5 and Large=0
Small Read Latency: avg=1007 us, min=69 us, max=39794 us, std dev=651 us @ Small=5 and Large=0

Minimum Small Latency=1007 usecs @ Small=5 and Large=0
Small Read Latency: avg=1007 us, min=69 us, max=39794 us, std dev=651 us @ Small=5 and Large=0
Small Read / Write Latency Histogram @ Small=5 and Large=0
Latency: # of IOs (read) # of IOs (write)
0 – 1 us: 0 0
2 – 4 us: 0 0
4 – 8 us: 0 0
8 – 16 us: 0 0
16 – 32 us: 0 0
32 – 64 us: 0 0
64 – 128 us: 6071 0
128 – 256 us: 5723 0
256 – 512 us: 3498 0
512 – 1024 us: 207182 0
1024 – 2048 us: 72514 0
2048 – 4096 us: 1536 0
4096 – 8192 us: 635 0
8192 – 16384 us: 598 0
16384 – 32768 us: 24 0
32768 – 65536 us: 5 0
65536 – 131072 us: 0 0
131072 – 262144 us: 0 0
262144 – 524288 us: 0 0
524288 – 1048576 us: 0 0
1048576 – 2097152 us: 0 0
2097152 – 4194304 us: 0 0
4194304 – 8388608 us: 0 0
8388608 – 16777216 us: 0 0
16777216 – 33554432 us: 0 0
33554432 – 67108864 us: 0 0
67108864 – 134217728 us: 0 0
134217728 – 268435456 us: 0 0

The output represented above shows:

Maximum MBPS (MB per seconds): 312.07
Maximum IOPS (I/O per seconds): 4963
On completion of the test, the directory with the ORION executable will contain several new files containing information about the IOPS, MBPS and latency gathered for each test. Here are the files produced by this run.


Obviously, the parameters you use for your runs will have to be tailored to reflect your setup.

Remember, no simulation is ever perfect, but the results give you an idea of what your storage system is capable of delivering.



Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s