There are many opinions on this topic (DirectIO on VxFS). The one I like is 8-): //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. > > >