Tuesday, October 04, 2011

ORION (ORracle IO Numbers)


Here is what I did to accomplish an Orion test on a new server I am currently installing oracle on and configuring.  The orion executable (11R2 is the first release to included this package) is stored under $ORACLE_HOME/bin directory.

user1a@serv01[dpprod]:/u01/app/oracle/product/11.2.0/db_1/bin> ll *orion*
-rwxr-xr-x 1 oracle dba 8698817 Sep  4  2010 orionO*
-rwxr-x--x 1 oracle dba 8700950 Jun 29 21:34 orion*

(Note that this is on Linux 64 bit).
I created a directory under /u01/app/oracle/ called orion. 
I then created the following file in that same orion directory: asm.vols.lun
I used the information from /dev/oracleasm/disks to populate it:
user1a@sevr2:/u01/app/oracle/orion> ls -l /dev/oracleasm/disks/
total 0
brw-rw---- 1 oracle dba 8,  33 Sep 29 10:12 VOL1
brw-rw---- 1 oracle dba 8,  49 Sep 29 10:12 VOL2
brw-rw---- 1 oracle dba 8,  65 Sep 29 10:12 VOL3
brw-rw---- 1 oracle dba 8,  81 Sep 29 10:12 VOL4
brw-rw---- 1 oracle dba 8,  97 Sep 29 10:12 VOL5
brw-rw---- 1 oracle dba 8, 113 Sep 29 10:12 VOL6

Here is the content of the asm.vols.lun file:
user1a@sevr2:/u01/app/oracle/orion> cat asm.vols.lun
/dev/oracleasm/disks/VOL1
/dev/oracleasm/disks/VOL2
/dev/oracleasm/disks/VOL3
/dev/oracleasm/disks/VOL4
/dev/oracleasm/disks/VOL5
/dev/oracleasm/disks/VOL6

Note that this server is using RDAC (Redundant Disk Array Controller).  I was able to determine this by noting that there were no files in the /dev/mapper/ directory (the storage is direct attached):
user1a@sevr2:/u01/app/oracle/orion> ll /dev/mapper
total 0
crw-------  1 root root 10, 63 Sep 29 10:12 control
drwxr-xr-x  2 root root     60 Sep 29 10:12 ./
drwxr-xr-x 12 root root   4380 Oct  4 11:38 ../

If this was multipath as it is on the sevr1 (esan) the mapper directory would be populated:
user1a@sevr1[dbprod]:/u01/app/oracle/product/11.2.0/db_1/bin> ll /dev/mapper
total 0
crw-------  1 root root  10, 63 Sep 23 22:29 control
brw-rw----  1 root disk 253,  0 Sep 23 22:29 mpath9
brw-rw----  1 root disk 253, 16 Sep 23 22:29 mpath8
brw-rw----  1 root disk 253, 15 Sep 23 22:29 mpath7
brw-rw----  1 root disk 253, 14 Sep 23 22:29 mpath5
brw-rw----  1 root disk 253, 13 Sep 23 22:29 mpath4
brw-rw----  1 root disk 253, 12 Sep 23 22:29 mpath3
brw-rw----  1 root disk 253, 11 Sep 23 22:29 mpath2
brw-rw----  1 root disk 253,  8 Sep 23 22:29 mpath17
brw-rw----  1 root disk 253,  7 Sep 23 22:29 mpath16
brw-rw----  1 root disk 253,  6 Sep 23 22:29 mpath15
brw-rw----  1 root disk 253,  5 Sep 23 22:29 mpath14
brw-rw----  1 root disk 253,  4 Sep 23 22:29 mpath13
brw-rw----  1 root disk 253,  3 Sep 23 22:29 mpath12
brw-rw----  1 root disk 253,  2 Sep 23 22:29 mpath11
brw-rw----  1 root disk 253,  1 Sep 23 22:29 mpath10
brw-rw----  1 root disk 253, 10 Sep 23 22:29 mpath1
brw-rw----  1 root disk 253,  9 Sep 23 22:29 mpath0
brw-rw----  1 root disk 253, 18 Sep 23 22:29 mpath8p1
brw-rw----  1 root disk 253, 17 Sep 23 22:29 mpath7p1
brw-rw----  1 root disk 253, 19 Sep 23 22:29 mpath2p1
brw-rw----  1 root disk 253, 20 Sep 23 22:29 mpath1p1
brw-rw----  1 root disk 253, 21 Sep 23 22:29 mpath0p1
brw-rw----  1 root disk 253, 22 Sep 23 22:29 mpath17p1
brw-rw----  1 root disk 253, 23 Sep 23 22:29 mpath16p1
brw-rw----  1 root disk 253, 24 Sep 23 22:29 mpath9p1
brw-rw----  1 root disk 253, 25 Sep 23 22:29 mpath15p1
brw-rw----  1 root disk 253, 26 Sep 23 22:29 mpath14p1
brw-rw----  1 root disk 253, 27 Sep 23 22:29 mpath13p1
brw-rw----  1 root disk 253, 28 Sep 23 22:29 mpath12p1
brw-rw----  1 root disk 253, 29 Sep 23 22:29 mpath5p1
brw-rw----  1 root disk 253, 30 Sep 23 22:29 mpath11p1
brw-rw----  1 root disk 253, 31 Sep 23 22:29 mpath4p1
brw-rw----  1 root disk 253, 32 Sep 23 22:29 mpath10p1
brw-rw----  1 root disk 253, 33 Sep 23 22:29 mpath3p1
drwxr-xr-x  2 root root     740 Sep 23 22:29 ./
drwxr-xr-x 14 root root   14840 Sep 23 22:31 ../

Here is what sevr1’s /dev/oracleasm/disks directory looks like:
user1a@serv2[dbprod]:/u01/app/oracle/product/11.2.0/db_1/bin> ll /dev/oracleasm/disks
total 0
drwxr-xr-x 4 root   root       0 Sep 23 22:30 ../
drwxr-xr-x 1 root   root       0 Sep 23 22:30 ./
brw-rw---- 1 oracle dba  253, 28 Oct  4 16:55 VOL9
brw-rw---- 1 oracle dba  253, 27 Oct  4 16:55 VOL10
brw-rw---- 1 oracle dba  253, 20 Oct  4 16:55 VOL1
brw-rw---- 1 oracle dba  253, 30 Oct  4 16:55 VOL8
brw-rw---- 1 oracle dba  253, 32 Oct  4 16:55 VOL7
brw-rw---- 1 oracle dba  253, 24 Oct  4 16:55 VOL6
brw-rw---- 1 oracle dba  253, 29 Oct  4 16:55 VOL5
brw-rw---- 1 oracle dba  253, 31 Oct  4 16:55 VOL4
brw-rw---- 1 oracle dba  253, 33 Oct  4 16:55 VOL3
brw-rw---- 1 oracle dba  253, 19 Oct  4 16:55 VOL2
brw-rw---- 1 oracle dba  253, 22 Oct  4 16:55 VOL14
brw-rw---- 1 oracle dba  253, 23 Oct  4 16:55 VOL13
brw-rw---- 1 oracle dba  253, 25 Oct  4 16:55 VOL12
brw-rw---- 1 oracle dba  253, 26 Oct  4 16:55 VOL11

If that where the case then my asm.vols.lun file contents would have looked like this:
/dev/mapper/mpath1p1   
/dev/mapper/mpath13p1  
/dev/mapper/mpath14p1  
/dev/mapper/mpath15p1  
/dev/mapper/mpath16p1  
/dev/mapper/mpath17p1  
/dev/mapper/mpath2p1   
/dev/mapper/mpath3p1   
/dev/mapper/mpath4p1   
/dev/mapper/mpath5p1   
/dev/mapper/mpath9p1   
/dev/mapper/mpath10p1  
/dev/mapper/mpath11p1  
/dev/mapper/mpath12p1

Here is the command line entries I used to execute the orion test:
./$ORACLE_HOME/bin/orion -run advanced -testname asm.vols -type seq -matrix point -num_large 6 -num_small 0 -duration 120  -write 0
Note: (-num_large typically is assigned the same number as the number of lun’s you have.)
Here is the output from the command execution:
ORION: ORacle IO Numbers -- Version 11.1.0.7.0
asm.vols_20111004_1538
Test will take approximately 5 minutes
Larger caches may take longer

rwbase_run_test: rwbase_reap_req failed
rwbase_run_process: rwbase_run_test failed
rwbase_rwluns: rwbase_run_process failed
orion_warm_cache: Warming cache failed. Continuing

Note: (The failures are expected in this case.)
The following files were created:
oracle@serv1:/u01/app/oracle/orion> ll
total 45296
-rwxrwxrwx 1 oracle dba 46350238 Oct  4 14:31 orion_linux_x86-64*
drwxrwxr-x 3 oracle dba     4096 Oct  4 14:43 ../
-rw-r--r-- 1 oracle dba      157 Oct  4 15:22 asm.vols.lun
drwxrwxr-x 2 oracle dba     4096 Oct  4 15:38 ./
-rw-r--r-- 1 oracle dba     2651 Oct  4 15:40 asm.vols_20111004_1538_trace.txt
-rw-r--r-- 1 oracle dba      907 Oct  4 15:40 asm.vols_20111004_1538_summary.txt
-rw-r--r-- 1 oracle dba       41 Oct  4 15:40 asm.vols_20111004_1538_mbps.csv
-rw-r--r-- 1 oracle dba       24 Oct  4 15:40 asm.vols_20111004_1538_lat.csv
-rw-r--r-- 1 oracle dba       24 Oct  4 15:40 asm.vols_20111004_1538_iops.csv

The “summary.txt” file contains the overall i/o speed results:
user1a@serv1:/u01/app/oracle/orion> cat *summary*
ORION VERSION 11.2.0.2.0

Commandline:
-run advanced -testname asm.vols -type seq -matrix point -num_large 6 -num_small 0 -duration 120 -write 0

This maps to this test:
Test: asm.vols
Small IO size: 8 KB
Large IO size: 1024 KB
IO Types: Small Random IOs, Large Sequential Streams
Number of Concurrent IOs Per Stream: 4
Force streams to separate disks: No
Simulated Array Type: CONCAT
Write: 0%
Cache Size: Not Entered
Duration for each Data Point: 120 seconds
Small Columns:,      0
Large Columns:,      6
Total Data Points: 1

Name: /dev/oracleasm/disks/VOL1 Size: 1170202328064
Name: /dev/oracleasm/disks/VOL2 Size: 1170202328064
Name: /dev/oracleasm/disks/VOL3 Size: 1170202328064
Name: /dev/oracleasm/disks/VOL4 Size: 1170202328064
Name: /dev/oracleasm/disks/VOL5 Size: 1170202328064
Name: /dev/oracleasm/disks/VOL6 Size: 1170202328064
6 FILEs found.

Maximum Large MBPS=1574.57 @ Small=0 and Large=6

As you can see, I am getting 1.5 gbs/sec.
The rule of thumb to expect for these i/o subsystems is around 250 MB/s per LUN.   Therefore for six LUNs it would be 1.5 GB/s. 

And I am happy, as that is what I got.
Thx

No comments: