I was recently having a chat with a friend about the Oracle ORION test tool. I like Orion and think it is a helpful tool. However, there is one aspect of Orion I thought I’d blog about because I find a lot of folks don’t know this bit about Orion’s I/O profile.
Generating an OLTP I/O Profile With Orion
If you use Orion to simulate OLTP, be aware that the profile is not exactly like Oracle. Orion uses libaio asynchronous I/O routines (e.g., io_submit(2)/io_getevents(2)) for reads as well as writes. This differs from a real Oracle database workload, because the main reads performed by the server in an OLTP workload are db file sequential reads which are random single-block synchronous reads. For that matter, foreground direct path reads are mostly (if not entirely) blocking single block requests. The net effect of this difference is that Orion can generate a tremendous amount of I/O traffic without the process scheduling overhead Oracle causes with blocking reads.
There is a paper that includes information about ORION in the whitepapers section of my blog. Also, ORION is downloadable from Oracle’s OTN website.
Trivial Pursuit
Why is it that random single-block synchronous reads are called db file sequential read in Oracle? Because the calls are made sequentially, one after the other. It is not because the target disk blocks are sequential in the file being accessed.
Hi kevin,
Recently i downloaded ORION from OTN to test on a linux red hat 3 , i am getting an error. Is it something you have come across.
I am getting this error
Running point: Small=1, Large=0
Point 2 out of 29
SKGFR Returned Error — Async. read failed on FILE: /dev/raw/raw25
OER 1: please look up error in Oracle documentation
rwbase_issue_req: lun_aiorq failed on read
rwbase_run_test: rwbase_issue_req failed
rwbase_run_process: rwbase_run_test failed
rwbase_rwluns: rwbase_run_process failed
orion_thread_main: rw_luns failed
Test error occurred
Orion exiting
Thanks
vinay
Post up your orion command line and I’ll see if I can help
Just now I ran the command line and it started working, only difference I can think of is right now, it is after-office hour.
During office hours the disks do get pounded.
Let me know if have any work around for using the orion tool during peak hours.
Thanks again,
Vinay
./orion -run simple -testname dave -num_disks 4
dave.lun
/dev/raw/raw22
/dev/raw/raw23
/dev/raw/raw24
/dev/raw/raw25
Hmmm… I just did this on RHEL4 with the x86_64 binary and I’m getting 5,000 reads/sec … Can’t imagine why it would work at one time of the day and not others … are you sure raw22-25 are safe to use?
“are you sure raw22-25 are safe to use”
These raw devices are used for test/dev boxs. I ran the test today morning and I get the same error but with a different raw device(dev/raw/raw24).
We are using RH3 x86 (32 bit) binary.
Try it with just a single filesystem file (Ext3 will do). Could be aio on RH3 madness.
we are having log writer performance issues (log file sync wait event). I am trying to use ORION to estimate the lgwrs performance in a similar test machine.
does the below equate to just lgwr’s performance. ?
the app generates about 3k redo per commit and about 150 commits per second.
./orion10.2_linux -run advanced -testname 4thrun -num_disks 8 -simulate concat \
-size_small 3-type seq -write 100 \
-duration 60 -matrix basic -verbose
thanks
bala
Hi Kevin
but Im very interested in your openion and arguments on this subject.
I have read ( and hopefully understood ) many of your posts and I find your blogging inspiring.
I wasnt aware of Orion so I found this bloggentry informative as allways.
I think as a preinstall tool ORION is a huge step forward ( from nothing in my case ).
Is ORION delivering data which can be used for direct comparing these numbers crossplatform ?
I think you can compare these numbers crossplatform ( cant see why not
Thanks in advance
Steen Bartholdy
Kevin,
I was trying to benchmark my single and multiblock read times for configuring system stats. However, I’m getting the following error:
root@S1DB03 # ./orion -run simple -testname mytest -num_disks 1
ORION: ORacle IO Numbers — Version 10.2.0.3.0
Test will take approximately 9 minutes
Larger caches may take longer
storax_skgfr_openfiles: File identification failed on /dev/rdsk/c5t600508B400105A8F0000900000290000d0
OER 27037: please look up error in Oracle documentation
SVR4 Error: 2: No such file or directory
Additional information: 3
rwbase_lio_init_luns: lun_openvols failed
rwbase_rwluns: rwbase_lio_init_luns failed
orion_thread_main: rw_luns failed
Non test error occurred
Orion exiting
Am I doing something wrong? I also get the same error if I specify the partition, such as /dev/rdsk/c5t600508B400105A8F0000900000290000d0s2.
Regards
Stuart
Hi Stuart,
I’ve sent you email. Let’s go over this offline.
Now that I’ve got some results, I’m trying to interpret them. I think I can conclude that I have something misconfigured since raw is so much faster than ext3. I’m also getting comfortable that similarly misconfigured, my new server will be significantly faster than my existing server.
I was able to use Orion on a Linux server both against a raw disk and a filesystem. The key for the filesystem testing seems to be using a file which is a multiple of your block size and much larger than can fit in cache. I made a ~1MB file from concatenated text files and once I got it sized as a multiple of the the block size, the tests ran. The results were up there with RAM speed so I increased the file size until I started getting believable results. I went ahead and made it 10GB.
Please have a look at my results and share your thoughts:
http://forums.oracle.com/forums/thread.jspa?messageID=2249899
Hi Kevin,
Thanks for the great resource on Orion.
I’m getting the same problem trying to run Orion on File or Files via an NFS mount point.
Orion exiting
[root@colinuxtest1 bin]# ./orion10.2_linux -run normal -testname mytest -num_disks 1
ORION: ORacle IO Numbers — Version 10.2.0.1.0
Test will take approximately 19 minutes
Larger caches may take longer
storax_skgfr_openfiles: File identification failed: /mnt/1201879371/Orion, error 4
storax_skgfr_openfiles: File identification failed on /mnt/1201879371/Orion
OER 27054, Error Detail 0: please look up error in Oracle documentation
rwbase_lio_init_luns: lun_openvols failed
rwbase_rwluns: rwbase_lio_init_luns failed
orion_thread_main: rw_luns failed
Non test error occurred
Orion exiting
Any advice would be great. I can’t find the error on the Oracle.
Larry
L,
What files are listed in your mytest file? Please cat the file then do ls -l on the files so we can see. Then, run the mount command so I can see your options.
Another thing that would be helpful is if you were to run orion under strace:
$ strace -o /tmp/strace.out -f orion
Then email me the strace output
Thanks for the quick response. Below is the output.
[root@colinuxtest1 bin]# ./orion10.2_linux -run simple -testname mytest -num_disks 1
ORION: ORacle IO Numbers — Version 10.2.0.1.0
Test will take approximately 9 minutes
Larger caches may take longer
storax_skgfr_openfiles: File identification failed: /mnt/1201879371/Orion, error 4
storax_skgfr_openfiles: File identification failed on /mnt/1201879371/Orion
OER 27054, Error Detail 0: please look up error in Oracle documentation
rwbase_lio_init_luns: lun_openvols failed
rwbase_rwluns: rwbase_lio_init_luns failed
orion_thread_main: rw_luns failed
Non test error occurred
Orion exiting
[root@colinuxtest1 bin]# cat mytest.lun
/mnt/1201879371/Orion
[root@colinuxtest1 bin]# ls -lh /mnt/1201879371/Orion
-rwxrwxrwx 1 root root 321M Feb 1 09:31 /mnt/1201879371/Orion
[root@colinuxtest1 bin]# cat mytest_trace.txt
TEST START
Point 1 (small=0, large=0) of 8
Valid small 1 Valid large 1
Valid
Point 2 (small=1, large=0) of 8
Valid small -2 Valid large 1
Non test error occurred
Orion exiting
I believe the solution is the mount options:
rsize=32768,wsize=32768,hard,noac
Everything is working now and additional iformation can be found here:
http://marist89.blogspot.com/2005/10/wicked-ora-27054-part-i.html
The error message was misleading. Should have been ORA-27054 not OER 27054
Thanks again Kevin,
Larry
Hi Kevin
I am running oracle ORION benchmark on machine where I created
/dev/raw/raw1 file which is 40M in size
===
-rwxrwxr-x 1 oracle oinstall 40M Feb 25 17:05 /dev/raw/raw1
===
I created this file by using dd
===
dd if=/dev/zero of=/dev/raw/raw1 bs=4096 count=10000
===
Now I am running following ORION benchmark
===
./orion10.2_linux -run simple -testname mytest -num_disks 1
ORION: ORacle IO Numbers — Version 10.2.0.1.0
Test will take approximately 9 minutes
Larger caches may take longer
SKGFR Returned Error — Async. read failed on FILE: /dev/raw/raw1
OER 1: please look up error in Oracle documentation
rwbase_issue_req: lun_aiorq failed on read
rwbase_run_test: rwbase_issue_req failed
rwbase_run_process: rwbase_run_test failed
rwbase_rwluns: rwbase_run_process failed
orion_thread_main: rw_luns failed
Test error occurred
Orion exiting
===
mytest.lun contains following
===
cat mytest.lun
/dev/raw/raw1
===
Can u please tell me how to fix this error ???
SKGFR Returned Error — Async. read failed on FILE: /dev/raw/raw1
This is RHEL 4.5 image.
how to create files like /dev/raw/raw1 other than what I could think of.Should they be text or binary files ?
tinku,
Oops, you now have a simple text file on a filesystem that apparently doesn’t support async I/O. Is it reiserfs or something? Ext3 files do support async I/O. Also, 40MB might be too small. I don’t know and can’t take the time to investigate. Sorry.
Hi, I’ve been using Orion to benchmark a 4 node AMD Opteron cluster attached to EVA8100 storage. I get over 42,000 IOPs and 1535MB a second on 8K small block reads!
I would like to compare this performance to an existing cluster that is running on much smaller (MSA 1000) storage, but I want to make sure that it won’t destroy my data.
If I use the “-write 0″ option, does that mean it will not do anything to harm my data that is on the rawdevices?
I’m a little scared to run this on a server that has rawdevices already initialized by ASM. I believe it will be safe, but I’m not 100% sure.
Thanks for your help.