RE: Db file scattered reads vs. direct path reads

From: Josh Collier <Josh.Collier_at_banfield.net>
Date: Fri, 22 Feb 2008 14:09:06 -0800
Message-ID: <578806DDE66A3A45916740EB73C6982ADB05AF1B0D@M1EXCHANGE01.mmi.local>


Vxfs and solaris 10 don't support kernalized async, but they do support a software workaround: each aio call spawns a series of threads that operate on a piece of the io call, these threads use pread(). One would need to buy quick i/o option for vxfs to get the kernalized aio. I verified that during the direct path read events that async i/o was operating as expected.

Its during the traditional reads from "db file scattered reads" which correlate to a synchronous read in the truss ouput that performance is slower. I'll check on the fdsync. I have tried it with directio on and off, it makes very little difference.

Thanks for your time!

Josh C.

-----Original Message-----
From: dtseiler_at_gmail.com [mailto:dtseiler_at_gmail.com] On Behalf Of Don Seiler Sent: Friday, February 22, 2008 1:40 PM
To: finn.oracledba_at_gmail.com
Cc: Josh Collier; oracle-l_at_freelists.org Subject: Re: Db file scattered reads vs. direct path reads

I do believe that I have async I/O on VxFS (no I don't have ODM). From an earlier blog post [0]:

oracle:~/sr $ strace -c -p 12605
Process 12605 attached - interrupt to quit Process 12605 detached % time seconds usecs/call calls errors syscall -- ---- ---- --- --- ------

80.66    1.142811         298      3831           io_getevents
7.26    0.102820          51      2004           io_submit

Don.

[0] http://seilerwerks.wordpress.com/2007/12/19/a-sub-prime-io-primer/

On Fri, Feb 22, 2008 at 3:16 PM, Finn Jorgensen <finn.oracledba_at_gmail.com> wrote:
> As I understand it vxfs does not support async IO. When you say
> "asynch reads on the new system", I'm thinking you mean direct reads?
>
> When not using directio on vxfs and you look at your truss output are
> there a lot of "fdsync" calls, which takes a long time (like 0.01
> seconds per call)? If so, that's your culprit. Going to directio can
> eliminate these, but there's a level of patching on both Solaris 10
> and veritas together with a kernel setting that pretty much eliminates
> the need for that setup as the fdsync calls are made so fast they can
> be ignored. Have you SA's check into paching solaris 10 and veritas to eliminate the slow fdsync calls.
>
> Finn
>
>
>
>
> On 2/22/08, Josh Collier <Josh.Collier_at_banfield.net> wrote:
> >
> >
> > the old system is on ufs, the new is vxfs.
> >
> > I've narrowed it down to the difference in synchronous disk reads.
> > the
> async reads on the new system are much faster. the synchronous disk
> reads are slower.
> >
> >
> >
> > ________________________________
> From: Finn Jorgensen [mailto:finn.oracledba_at_gmail.com]
> > Sent: Friday, February 22, 2008 7:01 AM
> > To: Josh Collier
> > Cc: oracle-l_at_freelists.org
> > Subject: Re: Db file scattered reads vs. direct path reads
> >
> >
> >
> > What type of filesystem are you on? What differences are there
> > between the
> old system and the new apart from the storage array?
> >
> > Finn
> >
> >
> > On 2/20/08, Josh Collier <Josh.Collier_at_banfield.net> wrote:
> > >
> > >
> > > Hi,
> > >
> > > I've got a conundrum. We've got a new disk system. When I full
> > > scan a
> table with the nocache hint the trace files record lots of reads like
> this
> > >
> > > WAIT #1: nam='db file scattered read' ela= 38471 file#=777
> > > block#=238789
> blocks=64 obj#=2805234 tim=359927798919
> > >
> > > And the query takes 11 minutes for a 19gb table, much slower than
> > > our
> old system
> > >
> > > When I enforce direct path reads with the following parameter
> > > :alter session set "_serial_direct_read" = true
> > >
> > > The trace files record lots of reads like this
> > >
> > > WAIT #1: nam='direct path read' ela= 5 file number=777 first
> > > dba=238789
> block cnt=64 obj#=2805234 tim=343398354853
> > >
> > > And the query returns in 3 minutes
> > >
> > > What would cause the scattered reads to be so much slower than the
> direct path reads?
> > >
> > > I've enabled direct io on the db and verified it via truss.
> > >
> > > Version is 10.2.0.1
> > > Solaris 10
> > >
> > >
> > >
> > >
> > >
> >
> >
>
>

--
Don Seiler
http://seilerwerks.wordpress.com
ultimate: http://www.mufc.us
--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 22 2008 - 16:09:06 CST

Original text of this message