Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Async I/O question
Diego,
It has been many moons since I last touched an AIX box, but I remember that
you have to configure AIO servers separately using SMIT AIO. (And possiblly
bounce the server?). How many 'kproc' processes do you see from a 'ps -ef' ?
(or was that 'ps -el'?). You might not be having the right amount of AIO
servers. Also check for AIX patches in the IUG guide .... You could also
check the system error log using 'errpt -a'.
John Kanagaraj
Oracle Applications DBA
DB Soft Inc
Work : (408) 970 7002
Listen to great, commercial-free christian music 24x7x365 at http://www.klove.com <http://www.klove.com/>
-----Original Message-----
Sent: Wednesday, May 08, 2002 11:29 AM
To: Multiple recipients of list ORACLE-L
Hi list.
Oracle 7.3.4.5
IBM 4.3.3
Raw devices based datafiles
use_async_io=TRUE
While the database was processing some long update, I traced the LGWR proccess with SCTRACE utility (like truss in solaris or HP) and I got the following dump:
LGWR proccess
unknown297(0x1, 0x2ff0cfa8, 0x30, 0x2ff0cfa0, 0x2ff0ed00) -> 0 times(0x2ff20fd8) -> 77507556 (0x49eabe4) 0x2ff20fd8:
0000: 00000015 000001e1 00000000 00000000 |................|times(0x2ff21068) -> 77507556 (0x49eabe4) 0x2ff21068:
0000: 00000015 000001e1 00000000 00000000 |................|times(0x2ff212c8) -> 77507556 (0x49eabe4) 0x2ff212c8:
0000: 00000015 000001e1 00000000 00000000 |................|times(0x2ff212c8) -> 77507556 (0x49eabe4) 0x2ff212c8:
0000: 00000015 000001e1 00000000 00000000 |................|times(0x2ff21018) -> 77507556 (0x49eabe4) 0x2ff21018:
0000: 00000015 000001e1 00000000 00000000 |................|times(0x2ff21068) -> 77507556 (0x49eabe4) 0x2ff21068:
0000: 00000015 000001e1 00000000 00000000 |................|unknown297(0x1, 0x2ff0cfa8, 0x3, 0x2ff0cfa0, 0x2ff0e058) -> 0 times(0x2ff20fd8) -> 77507557 (0x49eabe5) 0x2ff20fd8:
0000: 00000015 000001e1 00000000 00000000 |................|times(0x2ff21068) -> 77507557 (0x49eabe5) 0x2ff21068:
0000: 00000015 000001e1 00000000 00000000 |................|
and it keeps going.....
I asume that unknown297() system call is the writting call here, as times() unknown297() and are the only calls that appear in the trace.
After this testing I did the same trace in an
Oracle database 7.3.4.5
File system based datafiles
AIX 4.3.3 (same box)
use_async_io = TRUE
And I got the following output:
LGWR proccess
unknown297(0xa, 0, 0x4000982c, 0x1, 0x20034c78) -> -1 EINTR(4) (Interrupted
system call)
times(0x2ff21438) -> 45035290 (0x2af2f1a)
0x2ff21438:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff215c8) -> 45035290 (0x2af2f1a)
0x2ff215c8:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
kwaitpid(0x2ff21520, -1, 0x5, 0x00000000) -> -1 ECHILD(10) (No child
processes)
kill(27736, SIG 0(0)) -> 0
times(0x2ff215c8) -> 45035290 (0x2af2f1a)
0x2ff215c8:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21478) -> 45035290 (0x2af2f1a)
0x2ff21478:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
unknown297(0x12c, 0, 0x4000982c, 0x1, 0x20034c78)
[unknown297] -> 0
times(0x2ff21438) -> 45035477 (0x2af2fd5)
0x2ff21438:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21398) -> 45035477 (0x2af2fd5)
0x2ff21398:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21398) -> 45035477 (0x2af2fd5)
0x2ff21398:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff210e8) -> 45035477 (0x2af2fd5)
0x2ff210e8:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21138) -> 45035477 (0x2af2fd5)
0x2ff21138:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
kwrite(15, 0x4213be00, 55296) -> 55296 (0xd800)
times(0x2ff210a8) -> 45035479 (0x2af2fd7)
0x2ff210a8:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21138) -> 45035479 (0x2af2fd7)
0x2ff21138:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
unknown297(0xa650, 0xc08, 0, 0x5, 0x420315b4) -> 0
times(0x2ff21398) -> 45035479 (0x2af2fd7)
0x2ff21398:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21398) -> 45035479 (0x2af2fd7)
0x2ff21398:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff210e8) -> 45035479 (0x2af2fd7)
0x2ff210e8:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
times(0x2ff21138) -> 45035479 (0x2af2fd7)
0x2ff21138:
0000: 0000002d 00000175 00000000 00000000 |...-...u........|
kwrite(15, 0x42149600, 59904) -> 59904 (0xea00)
kwrite(15, 0x42130000, 48128) -> 48128 (0xbc00)
As you can see kwrite, klseek, etc are used here. My questions are:
Is unknown297 system call related to KAIO system calls?
Is kwrite related to Threaded Async I/O (the ones that uses the AIO servers) ?
If I'm correct about what I've said before, I must assume that the
unknown297 system calls that I see
in the second trace (FS based datafiles) are Oracle attemps to use KAIO (may
be because
use_async_io is set to TRUE), and after these attemps have failed, Oracle
uses kwrite
system call instead(Threaded Async I/O) Is this correct?
If anyone can help, I'd greatly appreciate it.
thanks in advance
Greetings
DC
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: John Kanagaraj INET: john.kanagaraj_at_hds.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-LReceived on Wed May 08 2002 - 19:53:20 CDT
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).