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
or disks can be copied. Do ‘man dd’ to see the syntax.
[root@vm11g01 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
libraries installed for asynchronous I/O. This library should be installed in
Oracle Linux Version: libaio, windows supports asynchronous I/Os automatically.
following command line:
[root@vm11g01 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.0Commandline:
-run simple -testname 11gtest -num_disks 4This 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: 29Name: /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 STARTPoint 1 (small=0, large=0) of 29
Valid small 1 Valid large 1
Validran (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 READPoint 2 (small=1, large=0) of 29
Valid small 1 Valid large 1
Validran (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 READPoint 3 (small=2, large=0) of 29
Valid small 1 Valid large 1
Validran (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
Validran (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 READPoint 28 (small=0, large=7) of 29
Valid small 1 Valid large 1
Validran (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 READPoint 29 (small=0, large=8) of 29
Valid small 1 Valid large 1
ValidTEST 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