Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> 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_at_freelists.org
> [mailto:oracle-l-bounce_at_freelists.org]On Behalf Of
> geraldine_2_at_comcast.net
> 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_at_vallent.com (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-lReceived on Fri Apr 29 2005 - 19:51:26 CDT
![]() |
![]() |