I was trying to prove that we had a disk I/O issue on a database server so I ran a set of Orion tests across that server and a number of others for comparison purposes. HPUX 11.31 Itanium using the 11.1.0.7 Orion binaries
The test I used was to use to raw devices which would normally be assigned to an ASM diskgroup but had either not yet been used or were marked as CANDIDATES or FORMER.
The Orion command I was using was
./orion_hpux_ia64 -run advanced -write 40 -matrix basic -duration 120 -testname hpuxdiskio -num_disks 2
where the file hpuxdiskio had two lines in of the format /dev/oracle/disk550 and dev/oracle/dev551
On one server where there were a number of free disks I saw the following error
ORION: ORacle IO Numbers — Version 11.1.0.7.0
hpuxdiskio_20100208_1455
Test will take approximately 31 minutes
Larger caches may take longerIoctl ASYNC_CONFIG error, errno = 1
SKGFR Returned Error — Async. read failed on FILE: /dev/oracle/disk550
OER 27064: cannot perform async I/O to file
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
Searching the net I could not find any clues. I added the same disks to a diskgroup with no problem so I knew that Oracle could use them and there were no permission or or other issues.
Metalink (MoS) doc 401323.1 provided the answer. This is about how to implement asynch I/O on HPUX and the part I immediately noticed and was aware of was the line about giving the Oracle user MLOCK privilege. This is a standard build action as the unix team deliver database servers to us but this server had pre-dated the requirement. Once we had granted the privilege the Orion testing worked successfully
From Administering Oracle on HPUX
To permit Oracle Database to process asynchronous I/O operations, the OSDBA group must have the MLOCK privilege.Log in as the root user.
#/usr/sbin/getprivgrp dba
#/usr/sbin/setprivgrp -f /etc/privgroup
Using any text editor, open the /etc/privgroup file, or create it if necessary.
Add or edit the following line, which begins with the name of the OSDBA group, specifying the privilege MLOCK
Note:
You must use only one line to specify the privileges for a particular group in this file. If the file already contains a line for the dba group, then add the MLOCK privilege on the same line.
dba RTPRIO RTSCHED MLOCK
Save the file, and quit the text editor.
Enter the following command to grant the privileges to the OSDBA group:
Enter the following command to verify that the privileges are set correctly.
#/usr/sbin/setprivgrp -f /etc/privgroup
I hope that helps anybody else who comes across the problem as I know there is at least one OTN forum question out there regarding this.
I will be posting more about the Orion testing once I have a definite conclusion.