RE: Async IO on Linux

  • From: "Kevin Closson" <kevinc@xxxxxxxxxxxxx>
  • To: <Oracle-L@xxxxxxxxxxxxx>
  • Date: Thu, 21 Sep 2006 12:58:21 -0700

        >>>I'm testing 10gR2 on a new Linux box.  I decided to fiddle
with enabling async IO.  To test the async IO, I imported a table and I
also ran several queries . I ran these tests one at a time (e.g. the
queries and imports were not running simultaneously).  I see NO
performance difference for my import or queries with async IO enabled.
I expected to see some performance difference (meaing change in elapsed
time).  Does async IO only help when you have multiple sessions
performing IO simultaneously?

...Oracle 10gR2 does not require a recompile for async on Linux BTW, it
is the first
release where it's just in there. your question though... I have to first ask, are you using direct
I/O as well?
It doesn't smell like it to me... if you are not using direct I/O, async
I/O wont
get you much really because all the writes on a buffered filesystem are
in essence
async because the only file where writes are synced is redo (open

The import should push DBWR to show some benefit, but mostly with Direct
I/O. As
for queries? Well, foreground processes do not use async I/O reads for
queries. Foregrounds
use readv (blocking) for scattered reads, and pread (blocking) for
direct path reads
and db file sequential reads.  PQO on the other hand, does indeed scan
with async I/O
keeping 4 sequential reads in flight at all times per slave (if there is
enough data).
But, don't be confused, if the query plan is an index range scan, PQO
will use 
readv (blocking scattered reads)...

the short answer is asnyc only relates to certain things and you have to
test those
to see a performance delta...oh, and you have to have a bottlenect that
async addresses
such as free buffer waits ...


Other related posts: