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

ORACLE

    Next

  • 1. ODP.NET Statement caching
    Hi In ODP.NET, it is possible to enable "statement caching" at the creation of the connection string. This is from the docs : Statement Cache Size Enables Statement Caching and sets the cache size, that is, the maximum number of statements that can be cached I don't really understand this - on what level is the caching done ? Do they mean caching of sql statements in the shared pool ? Or is this some server-side caching on the application server ? Matthias
  • 2. Oracle 10g R2 - Installation Error
    Hi All - I am trying to install Oracle 10g on Solaris 9 OS and getting following error message. "ERROR: Unable to convert from "UTF-8" to "646" for NLS! Bus Error - core dumped" any idea .... Thanks for your help OraUser
  • 3. When does a SQL stmt enter V$SQL_PLAN ?
    Hello, I've been trying to find several hash_values found in V$SQL[AREA] in V$SQL_PLAN but to no avail (also tried with the ADDRESS)... What makes a query enter the V$SQL_PLAN view ? (I'm talking about 9i) Thanks. Sp
  • 4. Oracle versus Informix Spatial
    Can anybody say that Oracle is better than Informix in terms of spatial capability? Is there any references on the Web where I can compare the two. Michael
  • 5. 10g - upgrading OS Solaris 8 -> 10
    We have an installed base of 10g on Solaris 8 across several mid-range Sun servers. As we migrate to Solaris 10, our dba group has proposed we move the Oracle binaries in place - that is, we deport the volumes from the Solaris 8 environment and import them on Solaris 10 (we are using a SAN). Have you or do you know of anyone who has successfully upgraded the Solaris OS around Oracle 10g without doing a fresh install of the Oracle binaries? Any points and comments are welcome. Thanks in advance.

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

Postby hrishy » Sun, 08 May 2005 15:54:01 GMT

Hi Folks

I have enabled directio and async io on my redhat box.

Async io is verified by running the classical cat
/etc/proc/slabinfo|grep kio

How do i verify direct io is being used by oracle.

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 :-)

regards
Hrishy


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

Postby chao_ping » Sun, 08 May 2005 17:47:09 GMT

 in sles9, if I set filesystemio_options=directio, I can see the
datafiles are opened with o_direct option.
But in redhat 3, seems you need to apply patch:
2448994


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

Postby Noons » Sun, 08 May 2005 19:37:25 GMT

 XXXX@XXXXX.COM  apparently said,on my timestamp of 7/05/2005 4:54 PM:


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...

-- 
Cheers
Nuno Souto
in sunny Sydney, Australia
 XXXX@XXXXX.COM 

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

Postby chao_ping » Mon, 09 May 2005 08:59:02 GMT

redhat as 3 does support DIO, but need seperate patch as I said before.
Without applying the patch:
[oracle@db1 3186847]$ grep open 920.directio
open("/home/oracle/oradata/db/data01.dbf", O_RDONLY|O_LARGEFILE) = 18
open("/home/oracle/oradata/db/data01.dbf", O_RDWR|O_SYNC|O_LARGEFILE) =
18
open("/home/oracle/oradata/db/data01.dbf", O_RDONLY|O_LARGEFILE) = 18
open("/home/oracle/oradata/db/data01.dbf", O_RDWR|O_SYNC|O_LARGEFILE) =
18
after applying patch 3186784:
[oracle@db1 3186847]$ grep open 9204.directio
open("/home/oracle/product/920/dbs/lkDB", O_RDWR|O_CREAT|O_EXCL, 0660)
= -1 EEXIST (File exists)
open("/home/oracle/product/920/dbs/lkDB", O_RDWR) = 10
open("/home/oracle/oradata/db/control1.ctl",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 11
open("/home/oracle/oradata/db/system.dbf",
O_RDONLY|O_DIRECT|O_LARGEFILE) = 12
open("/home/oracle/oradata/db/system.dbf",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 12
open("/home/oracle/oradata/db/undo.dbf", O_RDONLY|O_DIRECT|O_LARGEFILE)
= 13
open("/home/oracle/oradata/db/undo.dbf",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 13
open("/home/oracle/oradata/db/data01.dbf",
O_RDONLY|O_DIRECT|O_LARGEFILE) = 14
open("/home/oracle/oradata/db/data01.dbf",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 14
open("/home/oracle/oradata/db/index01.dbf",
O_RDONLY|O_DIRECT|O_LARGEFILE) = 15
open("/home/oracle/oradata/db/index01.dbf",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 15
open("/home/oracle/oradata/db/lob_data01.dbf",
O_RDONLY|O_DIRECT|O_LARGEFILE) = 16
open("/home/oracle/oradata/db/lob_data01.dbf",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 16
open("/home/oracle/oradata/db/temp.dbf", O_RDONLY|O_DIRECT|O_LARGEFILE)
= 17
open("/home/oracle/oradata/db/temp.dbf",
O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 17


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

Postby Mladen Gogala » Mon, 09 May 2005 10:52:30 GMT

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



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.


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

Postby hrishy » Mon, 09 May 2005 17:33:40 GMT

Hi Nuno,Chao Ping,Mladen

Thank you very very much.For the response i appreciate it very much.

Mladen hmm :-) sounds like you know :-) Bin L...n

regards
Hrishy


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

Postby Noons » Mon, 09 May 2005 18:17:44 GMT

chao_ping apparently said,on my timestamp of 8/05/2005 9:59 AM:


Funny: the Oracle papers in metaclick claim that RH3 does NOT support
direct IO for file systems and 9ir2.  Only for NFS files.


In fact, they claim that this happens only in NFS datafiles.
That is what the patch you mentioned before (2448994) claims.
this 3186784 patch is now different again.

I wonder: has Oracle support stooped so low that their
advice now as to what a patch does is so completely wrong
we have to test EVERY single grain of functionality to make sure
their contents are what they claim?

Lovely...

-- 
Cheers
Nuno Souto
in sunny Sydney, Australia
 XXXX@XXXXX.COM 

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

Postby Noons » Mon, 09 May 2005 18:25:37 GMT

Mladen Gogala apparently said,on my timestamp of 8/05/2005 11:52 AM:


Bingo.  the support of 9ir2 for RHAS3 is, to be quite honest,
shoddy as it comes.  If one is running 10 then all seems well.
Try 9ir2 and it's downhill fast.  And try and understand which
patch set has to be applied?  I've given up.


My problem is not with how to use strace but with what is NOT working
with 9.2.0.6 and RHAS3.  Total shambles, IMHO...


Narh, buddy.  I'm totally stuck in Australia.  Too many commitments
in my life right now to even consider traveling.  Would love to,
there are many people I want to catch up with. But not on for the next
5 or 6 years at least.  With luck...

-- 
Cheers
Nuno Souto
in sunny Sydney, Australia
 XXXX@XXXXX.COM 

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

Postby chao_ping » Mon, 09 May 2005 22:33:54 GMT

Oracle metalink conflicted sometimes.
Look at note:
Doc ID: 	Note:297521.1
Subject: 	DirectIO on Redhat and SuSe Linux
Symptoms
DirectIO is used to bypass the buffer pool of the filesystem (ext2,
ext3, reiserfs).

You have tried to enable the directio option by setting the init
parameter
filesystemio_options=DIRECTIO

But on tracing the DBWR you dont see directio in the open system call.
example
open("/tmp/test.dbf", O_RDWR|O_SYNC|O_LARGEFILE) = 21

Please remember while enabling the directio option.

-- DIRECTIO is not available of the IDE disk as IDE driver does not
supports varyio.
-- DIRECTIO is not available on 2.4.9 Kernel. So Redhat 2.1 does not
supports it.
-- No extra patch is required for 10gR1

Cause

This issue has been reported in unpublished Bug 2448994

To open the database with the O_DIRECT Flag. We need to generate the 4k
aligned addresss.
To achieve this we need to fix the Oracle Code to change the alignment
from 512 to 4K.
Solution

The above problem can be solved by applying the Patch 2448994

After applying the patch, When we check the DBWR
We can clearly see the DIRECTIO in the open system call.
open("/tmp/test.dbf", O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 21
References

As oracle 10g on redhat 3 support directio as Gogala said, so it means
redhat 3 itself supports directio.
So the problem is how oracle use directio on redhat 3, as the note
says, they don't match, so we need a seperate patch for 9.2.0.4-6 to
enablee directio.

Regards
Chao


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

Postby chao_ping » Mon, 09 May 2005 23:26:43 GMT

By the way, does any one know how to verify the directio on solaris ufs
via filesystemio_options?

If we enable forcedirectio with mount option, we can verify it via
mount command.
But How to veriify it if we enable it at oracle level, via the
filesystemio_options?

I tried pfile/truuss, can't find it is using o_direct option. But with
and without directio option, I do see BIG performance while I was doing
import test.

Thanks
Chao


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

Postby hpuxrac » Tue, 10 May 2005 02:22:43 GMT

> I wonder: has Oracle support stooped so low that their

Unfortunately we don't seem to disagree with each other here.


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

Postby Mladen Gogala » Tue, 10 May 2005 04:44:18 GMT




The beauty of cost cutting. Oracle started behaving like MacDonalds:
over one billion databases served. You will find a finger or something 
else of the sort here and there but, please, move on and don't block 
the line. In version 8i Oracle came with a radical idea of dismantling
beta testing and let the customers do beta testing. It seems that in 9i
they abandoned any testing at all and used the customer base as an
external QA department. In other words, they are the pioneers in switching
from regression testing to deception testing. I am expecting them to start
using customers for designing and coding the RDBMS software as well.
Things are definitely moving toward open source. They will adopt Oracle
Open Prime Software license, or OOPS for short. So, in order to use
oracle, you'll have to donate money to Larry Ellison and accept oops in
large quantities. May God have mercy on our wallets.

-- 
Demagogue: One who preaches a doctrine he knows to be untrue to 
           men he knows to be idiots. 
H.L. Mencken


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

Postby Niall Litchfield » Tue, 10 May 2005 07:04:20 GMT





Does note 279069.1 help in anyway at all :(

Niall 



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

Postby Mladen Gogala » Tue, 10 May 2005 07:10:33 GMT




I'll change the name as soon as bin Laden is caught.

-- 
Demagogue: One who preaches a doctrine he knows to be untrue to 
           men he knows to be idiots. 
H.L. Mencken


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

Postby Noons » Tue, 10 May 2005 10:11:11 GMT



Not at all.  As it says: in 9ir2 under RHAS3, directIO
*not* supported in ext2/ext3 file system.

And yet, it seems to be supported: see my last
reply to chao.  At least, strace is showing the O_DIRECT.
Is it happening really?  Dunno anymore.  Like I said:
the whole thing with 9.2.0.6 and RHAS3 is beyond the joke...


Similar Threads:

1.Redhat linux and async io

Hi,

Oracle10g 10.2.0.1 (32 bit)
RHEL 4 update 3 (32 bit)

* I have installed the async io rpm's
$ rpm -qa | grep aio
libaio-0.3.102-1
libaio-devel-0.3.102-1

Questions:
1) How do i verify/check if the async io is enabled/loaded in RHEL
kernel?
I solaris I used to
$ modinfo | grep kaio
142  1344ccb   4916 178   1  kaio (kernel Async I/O)
142  1344ccb   4916 178   1  kaio (kernel Async I/O for 32 bit com)

One of the Metalink docs says check
$ cat /proc/slabinfo | grep kio

2) How do I determine if the redlat linux installed is 32 or 64 bit
version?
Is getconf LONG_BIT the only way to determine this or will uname -a
show something specific.

Thanks for your help.
wagen

2.Bare essentials to install ralce 9i client sql plus and oracle database on redhat linux

what constituents do I need to install these products on a redhat linux 9


3.RMAN: ksfd: async disk IO

Hello All,

While I was testing the RMAN backup to disk on 10g, backup job is
waiting forever /hung with the wait event "ksfd: async disk IO".

spfile parameter for ASYNC were set.

disk_async_io=TRUE
filesyetmio_options=async

Can someone tell me what to do to resolve this.

Thanks
Madhu

4.Async IO on Oracle 9.2.0.5

5.how to configure async io on windows 2003 server ntfs system

I have oracle 9.2.0.7 on two windows 2003 servers. When I run a sql
with sort operation, the server 1 runs quicklier that server 2. There
are a lot of wait events "direct path write/read" on server 2.

I am not sure what causes this. I guess it is caused by direct io or
async io configuration on the windows 2003 server. but I don't know how
to check and configure the direct io and async io on windows 2003
server.

Could you help on this?

Thanks in advance.

6. Books for White Box Linux - To learn Oracle 9i & Linux

7. Oracle 9i on RedHat 8 and RedHat AS2.1 having problem

8. 9i 'client' only, install on Redhat 9 Linux



Return to ORACLE

 

Who is online

Users browsing this forum: No registered users and 23 guest