Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: directio and async io on redhat linux 3 and oracle 9i

Re: directio and async io on redhat linux 3 and oracle 9i

From: Mladen Gogala <gogala_at_sbcglobal.net>
Date: Sun, 08 May 2005 01:52:30 GMT
Message-ID: <pan.2005.05.08.01.52.27.733225@sbcglobal.net>


On Sat, 07 May 2005 20:37:25 +1000, Noons wrote:

> hrishy_at_gmail.com apparently said,on my timestamp of 7/05/2005 4:54 PM:
>

>> I know of one way to do it is tracing the dbwr and seeing whether fopen
>> call is with o_direct flags.But the strange thing is when i say
>> 
>> sqlplus>conn /as sysdba;
>> 
>> sqlplus>oradebug setospid <<ospid-of-dbwriter>>
>> 
>> no trace file is being produced.Can somebody tell me what magic needs
>> to be done by me :-)

>
> Well, dunno about oradebug. But with strace all you have to do is
> use it to call sqlplus and then start the database. Use the "-ff" and
> "-f" options so you get one trace file per spawned process and "-e trace=open,
> read,write": then it's dirt easy to find the dbwr trace file and
> the wanted info in it.
>
> And no, in RHAS I haven't yet been able to see O_DIRECT being used
> anywhere. I suspect it can't be used on file system datafiles in 9i
> anyway. At least, it's not in any of the availability matrixes
> in metaclick. 10g might be a different kettle though.
> Ah yes: if you run 9.2.0.6, make sure you apply the required metaclick
> patch to get aio to work. Otherwise it says it's there, but it'll
> be broken. DAMHIKT...

On FC3, with another version, things look like this: gettimeofday({1115516619, 411653}, NULL) = 0 gettimeofday({1115516619, 411723}, NULL) = 0 pread(15, "\25\302\0\0\27\0\0\0\311\6\0\0\377\377\1\4\255E\0\0\3\0"..., 16384, 376832) = 16384 gettimeofday({1115516619, 428299}, NULL) = 0 stat64("/oradata/10g/oracle/system01.dbf", {st_mode=S_IFREG|0640, st_size=629153792, ...}) = 0 open("/oradata/10g/oracle/system01.dbf", O_RDONLY|O_DIRECT|O_LARGEFILE) = 18

close(18)                               = 0
open("/oradata/10g/oracle/system01.dbf", O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 18
fcntl64(18, F_SETFD, FD_CLOEXEC)        = 0
io_submit(0xb74a4000, 0x1, 0xbfffe1b8) = 1 io_getevents(0xb74a4000, 0x1, 0x1, 0xbfffe5bc, 0xbfffe148) = 1
fcntl64(18, F_GETFL)                    = 0xd002 (flags O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE)
fcntl64(18, F_SETLK64, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}, 0xbfffe620) = 0 gettimeofday({1115516619, 435080}, NULL) = 0 pread(15, "\25\302\0\0\23\0\0\0\226\7\0\0\377\377\1\4CS\0\0\0\310"..., 16384, 311296) = 16384 gettimeofday({1115516619, 435487}, NULL) = 0 gettimeofday({1115516619, 435549}, NULL) = 0

You can easily see files being open with O_DIRECT flag. Unfortunately, this is not version 9:

SQL*Plus: Release 10.1.0.4.0 - Production on Sat May 7 21:42:12 2005

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area 201326592 bytes

Fixed Size                   778452 bytes
Variable Size              78651180 bytes
Database Buffers          121634816 bytes
Redo Buffers                 262144 bytes
Database mounted.
SQL> alter database open;

Database altered.

when the database was mounted, I attached strace to dbw, like this:

$ ps -fu $LOGNAME|grep dbw
oracle 10996 1 0 21:42 ? 00:00:00 ora_dbw0_10g oracle 11045 11021 0 21:43 pts/0 00:00:00 grep dbw $ strace -o /tmp/dbw.out -p 10996
Process 10996 attached - interrupt to quit

when that was done, I opened the database. The result is above. I don't know about whether direct I/O would work on RH ES 3.0, but that is how you can check. You have the same hammer called "strace". May the force be with you. Noons, do you have any plans to come to the east coast in foreseeable future?

-- 
Egoist: A person of low taste, more interested in themselves than in me.
Received on Sat May 07 2005 - 20:52:30 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US