Re: filesystemio_options setting

  • From: "Finn Jorgensen" <finn.oracledba@xxxxxxxxx>
  • To: Josh.Collier@xxxxxxxxxxxx
  • Date: Wed, 14 May 2008 15:54:48 -0400

> 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.
>
--
//www.freelists.org/webpage/oracle-l


Other related posts: