Oracle FAQ Your Portal to the Oracle Knowledge Grid

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

RE: comments on forcedirectio

Date: Wed, 4 May 2005 10:15:53 +0530
Message-ID: <>

We experienced significant database wide slowdown for a High Transaction volume Hybrid(OLTP+Batch) type database on setting forcedirectio(Solaris OS) on datafile's partitions with Oracle 8i. Performance returned to normal on removal of the same.

HTH -----Original Message-----
[] On Behalf Of
Sent: Monday, May 02, 2005 8:18 PM
Subject: RE: comments on forcedirectio

Thanks for your response.=20

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=20
Log Writer process issues I/Os larger than the system page size, so enabling=20
DirectIO allows the Log Writer to efficiently transmit the data to storage=20
without the latency associated with splitting I/O into page size transfers. Most=20
database deployments separate the Redo Logfiles onto different file systems from=20
the datafiles. This makes enabling forcedirectio on Redo Logs simple. Even if=20
the Redo Logs are on the same file system as the data files, multiple mount=20
points can be used to access the same file system, one without the DirectIO=20
option (for datafiles) and one with DirectIO (for the logs)."

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

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

Thanks everyone for your responses.


> I can't comment on forcedirectio sideeffects on NetApp but I don't
> I've ever seen any recommendation to avoid fdio on datafiles. While
> looking for this paper (
> I'm sure commented on forcedirectio I found this one, "Understanding
> Benefits of Implementing Oracle RAC on Sun"
> ( Don't let the RAC label
> you off, there's a couple of interesting tidbits I didn't know.
> "By default, Solaris file systems break synchronous writes into
> units, so a single 64-kilobyte write will be performed as eight
> synchronous writes. Therefore, regardless of the size of the Oracle
> 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
> 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
> 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

> 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
> a big enough buffer cache and saw a big performance hit when the
> 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 =3D
> > datafiles (worst case) or just cause your instance to crash at
random =3D
> > 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 =3D
> > but discourages on oracle datafiles. With my limited understanding
on =3D
> > the forcedirectio option, I believe it should be used on Oracle =3D
> > datafiles to eliminate double buffering. The use of forcedirectio
should =3D
> > improve database performance.=3D20
> > 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.

> --=20
> Stephen Rospo Principal Software Architect
> Vallent Corporation (formerly Watchmark-Comnitel)
> (425)564-8145

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

> --
Received on Wed May 04 2005 - 00:50:54 CDT

Original text of this message