Using Orion Calibration to check I/O numbers

Brief intro

Oracle has been a
longstanding supporter of the Linux operating system and as you know, they have
been pushing Enterprise Linux for quite some time and even have a full-fledged
team that only works on and develops Linux tools. One such tool is Orion, and although
it is currently in beta, and remains unsupported software, we do hope that
Oracle will eventually make its Enterprise Linux robust enough to be a self-testing,
self-automating and self-adjusting operating system.

Orion: What is it?

Orion is an I/O metrics
testing tool. This tool is ideal to do capacity planning and to check how your
storage is doing on your DAS, SAN or NAS. Orion has been specifically designed
to simulate the workload using the same Oracle software stack. The following
types of workloads are supported currently:

  • Small
    Random I/O: Best if you are testing it for an OLTP database to be installed on
    your system. Orion generates random I/O workload with a known percentage of
    read versus writes, given I/O size, and a given number of outstanding I/Os.
  • Large
    Sequential Reads: Typical DSS (Decision Support systems) or Data Warehousing
    applications, bulk copy, data load, backup and restore are typical activities
    that will fall into this category.
  • Large
    Random I/O: Sequential streams access disks concurrently and with disk striping
    (RAID that is); a sequential stream is spread across multiple disks, thus at
    disk level you may see multiple streams as random I/Os.
  • Mixed
    workloads: A combination of small random I/O and large sequential I/Os or even
    large random I/Os that allow you to simulate OLTP workloads of fixed random
    reads/writes and 512KB for backup workload of sequential streams.

Where can ORION be tested

DAS: Orion
has been duly tested on DAS (Direct Attached Storage); actually, that is what
we are doing now. I have a Maxtor external drive and have both my nodes,
without any Oracle RAC database.

SAN: AS
long as the LUNs are mapped to the local devices, Orion will test it.

NAS: Make
sure to initialize the datafiles before running ORION.

Lets get started

  • Get the
    software first from Oracle’s site
  • Unzip it to your favourite location; I did it on
    our Oracle Enterprise Linux’s 5 GA’s tmp folder. On Linux do gunzip orion10.2_linux.gz and under Windows you just need to run the MSI file.
  • Create a file: We created a file called 11gtest.lun and added our shared disks that we will be using for Oracle 11g ASM
    and OCR files.
  • Add the shared disks to the file: We added our
    disks as such;

  • /dev/sdc1
    /dev/sdd1
    /dev/sde1
    /dev/sdf1

  • Use the ‘dd’ command to verify that all of the selected volumes
    or disks can be copied. Do ‘man dd’ to see the syntax.

  • [[email protected] dev]# dd if=/dev/sdc1 of=/dev/null bs=32k count=1024
    1024+0 records in
    1024+0 records out
    33554432 bytes (34 MB) copied, 0.92155 seconds, 36.4 MB/s

  • Check your platform to see if it has the necessary
    libraries installed for asynchronous I/O. This library should be installed in
    Oracle Linux Version: libaio, windows supports asynchronous I/Os automatically.
  • OK all set, then we will start the test with the
    following command line:

  • [[email protected] tmp]# ./orion -run simple -testname 11gtest -num_disks 4
    ORION: ORacle IO Numbers — Version 10.2.0.1.0
    Test will take approximately 30 minutes
    Larger caches may take longer

What happens now is that the I/O load
levels are generated and recorded in the output files. Several output files are
generated:

1. 
11gtest_summary contains
the following data input parameters, max throughput, max I/O rate and minimum
latency observed.:


ORION VERSION 10.2.0.1.0

Commandline:
-run simple -testname 11gtest -num_disks 4

This maps to this test:
Test: 11gtest
Small IO size: 8 KB
Large IO size: 1024 KB
IO Types: Small Random IOs, Large Random IOs
Simulated Array Type: CONCAT
Write: 0%
Cache Size: Not Entered
Duration for each Data Point: 60 seconds
Small Columns:, 0
Large Columns:, 0, 1, 2, 3, 4, 5, 6, 7, 8
Total Data Points: 29

Name: /dev/sdc1 Size: 536854528
Name: /dev/sdd1 Size: 213893120
Name: /dev/sde1 Size: 4293563904
Name: /dev/sdf1 Size: 4293563904
4 FILEs found.

Maximum Large MBPS=34.47 @ Small=0 and Large=2
Maximum Small IOPS=185 @ Small=17 and Large=0
Minimum Small Latency=7.45 @ Small=1 and Large=0

2. 
11gtest_mbps.csv:
This file contains the data transfer rate (MBPS) for large random/sequential
workloads. They contain, all CSV files by the way, two-dimensional data, which you
have to import manually to get a graph or save it as an Excel file and then see
if you can plot a graphical representation of the collected data. What does it
look like?


Large/Small, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20
1, 28.91
2, 34.47
3, 34.22
4, 33.23
5, 31.90
6, 34.01
7, 32.96
8, 33.46

3. 
11gtest_iops.csv:
This contains I/O throughput results for small random workloads. And now
take a look at the content of the file:


Large/Small, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20
0, 134, 153, 160, 170, 170, 169, 176, 180, 161, 181, 179,
178, 183, 178, 177, 182, 185, 179, 173, 172
1
2
3
4
5
6
7
8

4. 
11gtest_lat.csv: Latency results for small random workloads. Sample data:


Large/Small, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20
0, 7.45, 13.01, 18.72, 23.52, 29.34, 35.34, 39.72, 44.23, 55.63, 55.08, 61.41,
67.13, 70.80, 78.50, 84.43, 87.84, 91.72, 100.50, 109.49, 116.13
1
2
3
4
5
6
7
8

5. 
11gtest_trace file: This is all unprocessed data. Sample of begin and end:


TEST START

Point 1 (small=0, large=0) of 29
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 9337875456
ran (small): Index = 0 Count = 8048 Avg Lat = 7.45
ran (small): nio=8048 nior=8048 niow=0 req w%=0 act w%=0
ran (small): my 1 oth 0 iops 134 size 8 K lat 7.45 ms bw = 1.05 MBps dur 59.97 s READ

Point 2 (small=1, large=0) of 29
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 9337875456
ran (small): Index = 0 Count = 4610 Avg Lat = 13.00
ran (small): Index = 1 Count = 4599 Avg Lat = 13.02
ran (small): nio=9209 nior=9209 niow=0 req w%=0 act w%=0
ran (small): my 2 oth 0 iops 153 size 8 K lat 13.01 ms bw = 1.20 MBps dur 59.94 s READ

Point 3 (small=2, large=0) of 29
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 9337875456
ran (small): Index = 0 Count = 3205 Avg Lat = 18.70
ran (small): Index = 1 Count = 3197 Avg Lat = 18.75
ran (small): Index = 2 Count = 3199 Avg Lat = 18.73
ran (small): nio=9601 nior=9601 niow=0 req w%=0 act w%=0
ran (small): my 3 oth 0 iops 160 size 8 K lat 18.72 ms bw = 1.25 MBps dur 59.94 s READ




Point 27 (small=0, large=6) of 29
Valid small 1 Valid large 1
Valid

ran (large): VLun = 0 Size = 9337875456
ran (large): Index = 0 Count = 279 Avg Lat = 213.26
ran (large): Index = 1 Count = 281 Avg Lat = 212.17
ran (large): Index = 2 Count = 282 Avg Lat = 211.49
ran (large): Index = 3 Count = 281 Avg Lat = 212.03
ran (large): Index = 4 Count = 279 Avg Lat = 213.37
ran (large): Index = 5 Count = 282 Avg Lat = 211.42
ran (large): Index = 6 Count = 281 Avg Lat = 212.17
ran (large): nio=1965 nior=1965 niow=0 req w%=0 act w%=0
ran (large): my 7 oth 0 iops 32 size 1024 K lat 212.27 ms bw = 32.96 MBps dur 59.61 s READ

Point 28 (small=0, large=7) of 29
Valid small 1 Valid large 1
Valid

ran (large): VLun = 0 Size = 9337875456
ran (large): Index = 0 Count = 247 Avg Lat = 240.04
ran (large): Index = 1 Count = 247 Avg Lat = 240.69
ran (large): Index = 2 Count = 245 Avg Lat = 240.33
ran (large): Index = 3 Count = 251 Avg Lat = 235.70
ran (large): Index = 4 Count = 254 Avg Lat = 232.80
ran (large): Index = 5 Count = 250 Avg Lat = 235.24
ran (large): Index = 6 Count = 247 Avg Lat = 240.24
ran (large): Index = 7 Count = 243 Avg Lat = 243.83
ran (large): nio=1984 nior=1984 niow=0 req w%=0 act w%=0
ran (large): my 8 oth 0 iops 33 size 1024 K lat 238.56 ms bw = 33.46 MBps dur 59.30 s READ

Point 29 (small=0, large=8) of 29
Valid small 1 Valid large 1
Valid

TEST END

External disk used:

Disk I would advise: FireWire
400/800, 500gb disk

Conclusion

Orion is a great tool to test the I/O
readiness of your hardware. How often have you gone through frustrating moments,
only to realize that your I/O was a disaster. I will be carrying this Maxtor
drive with me soon. Remember, an improperly configured disk that
performs poorly on I/O performance, is a not the disk you would want to run
your Oracle RAC on.

»


See All Articles by Columnist
Tarry Singh


Tarry Singh
Tarry Singh
I have been active in several industries since 1991. While working in the maritime industry I have worked for several Fortune 500 firms such as NYK, A.P. Møller-Mærsk Group. I made a career switch, emigrated, learned a new language and moved into the IT industry starting 2000. Since then I have been a Sr. DBA, (Technical) Project Manager, Sr. Consultant, Infrastructure Specialist (Clustering, Load Balancing, Networks, Databases) and (currently) Virtualization/Cloud Computing Expert and Global Sourcing in the IT industry. My deep understanding of multi-cultural issues (having worked across the globe) and international exposure has not only helped me successfully relaunch my career in a new industry but also helped me stay successful in what I do. I believe in "worknets" and "collective or swarm intelligence". As a trainer (technical as well as non-technical) I have trained staff both on national and international level. I am very devoted, perspicacious and hard working.

Latest Articles