RE: comments on forcedirectio

I can't comment on forcedirectio sideeffects on NetApp but I don't think
I've ever seen any recommendation to avoid fdio on datafiles.  While
looking for this paper (www.sun.com/blueprints/0101/SunOracle.pdf) which
I'm sure commented on forcedirectio I found this one, "Understanding the
Benefits of Implementing Oracle RAC on Sun"
(www.sun.com/blueprints/0105/819-1466.pdf).  Don't let the RAC label scare
you off, there's a couple of interesting tidbits I didn't know.

"By default, Solaris file systems break synchronous writes into 8-kilobyte
units, so a single 64-kilobyte write will be performed as eight 8-kilobyte
synchronous writes. Therefore, regardless of the size of the Oracle I/O,
logs are written to as individual 8-kilobyte transactions, indirectly
limiting the log throughput to the number of synchronous I/Os the
underlying device can perform.

The direct I/O feature eliminates this
behavior, allowing large writes to complete as a single I/O. Enabling
direct I/O for the transaction log allows the Oracle log writer to
efficiently batch log file writes, eliminating the log file as a
bottleneck and allowing scalable throughput. As of the release of the
Solaris 8 1/01 OS, direct I/O eliminates single writer locks on entire
files, referred to as concurrent direct I/O."

Beyond the redo log, it looks like this has benefits for the db writer if
you're using > 8k block sizes.

Later the same paper addresses single writer locks on "cooked" file
systems:

"Direct I/O that eliminates the single writer lock (known as concurrent
direct I/O) was available in the Solaris 8 1/01 OS. This allows the UFS to
perform nearly as well as raw disks when used with the Oracle database."

It looks to me like by not using forcedirectio on datafiles and redo,
you're missing out on a lot.  Maybe the author of the article didn't have
a big enough buffer cache and saw a big performance hit when the double
buffering was removed?

S-



On Fri, 29 Apr 2005, Reidy, Ron wrote:

> Not sure on this one, but I think using this on NetApp will corrupt your =
> datafiles (worst case) or just cause your instance to crash at random =
> times (best case).
>
> -----Original Message-----
> From: oracle-l-bounce@xxxxxxxxxxxxx
> [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of
> geraldine_2@xxxxxxxxxxx
> Sent: Friday, April 29, 2005 4:48 PM
>
> I've read articles that encourages the use of forcedirectio on redo logs =
> but discourages on oracle datafiles. With my limited understanding on =
> the forcedirectio option, I believe it should be used on Oracle =
> datafiles to eliminate double buffering. The use of forcedirectio should =
> improve database performance.=20
> Are there any reasons why the option should not be used on Oracle =
> datafiles? Does the use of the option depends on the type of storage =
> array? We have 9.2.0.4 databases on SUN StorEdge T4 and NetApp.

-- 
Stephen Rospo        Principal Software Architect
Vallent Corporation (formerly Watchmark-Comnitel)
Stephen.Rospo@xxxxxxxxxxx           (425)564-8145

This email may contain confidential information. If you received this in
error, please notify the sender immediately by return email and delete this
message and any attachments. Thank you.

--
http://www.freelists.org/webpage/oracle-l

Other related posts: