Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: comments on forcedirectio

RE: comments on forcedirectio

From: <>
Date: Mon, 02 May 2005 14:48:13 +0000
Message-Id: <>

Thanks for your response.

This is the article I'm referring to -

In section 5.2.1 NFS Mount Options on page 20: "In general, DirectIO should always be enabled for Oracle Redo Logs. The Oracle Log Writer process issues I/Os larger than the system page size, so enabling DirectIO allows the Log Writer to efficiently transmit the data to storage without the latency associated with splitting I/O into page size transfers. Most database deployments separate the Redo Logfiles onto different file systems from the datafiles. This makes enabling forcedirectio on Redo Logs simple. Even if the Redo Logs are on the same file system as the data files, multiple mount points can be used to access the same file system, one without the DirectIO option (for datafiles) and one with DirectIO (for the logs)."

It appears that the authors implied the use of forcedirectio only on redo logs. It was not clear to me why. So far the responses I've got from this list are database files are written asynchronously so it does not matter if the directio option is used and using forcedirectio option on netapps might cause corruption.

I can't remember if the other article I read is also on NetApp.

Thanks everyone for your responses.


> 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 ( which
> I'm sure commented on forcedirectio I found this one, "Understanding the
> Benefits of Implementing Oracle RAC on Sun"
> ( 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:
> > []On Behalf Of
> >
> > 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 databases on SUN StorEdge T4 and NetApp.
> --
> Stephen Rospo Principal Software Architect
> Vallent Corporation (formerly Watchmark-Comnitel)
> (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.
> --

Received on Mon May 02 2005 - 10:52:35 CDT

Original text of this message