Re: filesystemio_options setting

There are many opinions on this topic (DirectIO on VxFS).

The one I like is 8-):

http://www.freelists.org/archives/oracle-l/01-2008/msg00774.html

--romas


On 5/14/08, Finn Jorgensen <finn.oracledba@xxxxxxxxx> wrote:
>
> > Directio and asyncio are commonly confused. Its my understanding that the
> >VxFS supports directio but not async, unless you have the ODM or QuickIO
> option$.
>
> It is my understanding as well that VxFS does not support async IO
> (and I have verified this with truss on Solaris 9/10), but it does
> support DirectIO natively if filesystemio_options is set to either
> setall or directio. However, ODM and/or quickIO does not allow async
> IO. It's a way of allowing writes to the filesystem to act like it's
> writing to raw devices, which is effectively the same as directio. In
> my testing it's faster to use SETALL on Solaris and VxFS than to use
> ODM. Plus it's free :)
>
> Async IO is never supported with VxFS, but is implemented somewhat
> through the LWP processes mentioned elsewhere in this thread. It's not
> necessarily a fast way of working with data depending on what your app
> is doing (e.g. I've tested writing LOB's through this method to be
> extremely slow in 10g on Solaris. SETALL fixed that problem).
>
> As always, with these kinds of changes, it's best to do your own testing.
>
> Finn
>
>
> On 5/14/08, Josh Collier <Josh.Collier@xxxxxxxxxxxx> wrote:
> > With parallelism the blocks are read into the PGA. Perhaps it was
> undersized.
> >
> > Setall is going to try to use both directio and asyncio. You should
> verify by trussing the your db process that async io is working correctly.
> >
> > Directio and asyncio are commonly confused. Its my understanding that the
> VxFS supports directio but not async, unless you have the ODM or QuickIO
> option$.
> >
> > Direct i/o bypasses the filesystem cache and requires resizing of the pga
> and the sga to compensate for this.
> > Ansync i/o uses KAIO calls instead of pread calls to initiate asyncronous
> i/o. Even with SETALL, you are not guranteed to get async reads unless
> parallelism is invoked. Traditional single process reads will show up as "db
> file scattered reads", these won't be async. "direct path reads" are async
> reads. I've verified this with truss. With SETALL most of your writes will
> be async by default.
> >
> > Some OS (such as solaris 10) mimic async i/o with a series of threaded
> syncronous reads, when the dabatase is set to use async. The db issues a
> KAIO call, the OS recoginizes this, returns a small error and then initiates
> the LWP threaded sync read calls.
> >
> >
> > Josh C.
> >
>

Other related posts: