Re: Db file scattered reads vs. direct path reads

From: Finn Jorgensen <finn.oracledba_at_gmail.com>
Date: Fri, 22 Feb 2008 16:16:00 -0500
Message-ID: <74f79c6b0802221316s3d017a80v6bdb22791feac628@mail.gmail.com>


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

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 22 2008 - 15:16:00 CST

Original text of this message