Subject: Re: RAW access to files
To: Arne H Juul <>
From: Alfred Perlstein <>
List: tech-kern
Date: 12/11/2001 19:23:17
* Arne H Juul <> [011211 17:55] wrote:
> On Tue, 11 Dec 2001, Ignatios Souvatzis wrote:
>  > On Mon, Dec 10, 2001 at 07:42:07PM +0100, Wojciech Puchar wrote:
>  > > > this is more often called "direct i/o" or "unbuffered i/o".
>  > > > it's on the list of things I want to add, but I haven't had time yet.
>  > > 
>  > > it would be really good! with support in common mpeg/divx players etc..
>  > > and with option in cp and dd
>  > 
>  > Why do you think that "raw" I/O would be more efficient than the filesystem
>  > + buffer cache doing readahead? 
> Because that's what benchmarks and real production use of some
> applications with and without direct io show :-)  I don't think
> "cp" is such a good example though, since you lose the readahead.
> For some (typically database-like) apps it can be a pretty big boost.
> Disclaimer:  We've actually *measured* the performance difference
> for our app only on FreeBSD, Windows, Solaris, and Linux, AFAIK.

Direct IO is a good idea, it prevents applications that are basically
doing a cache walk from blowing out all your cache.

Take for instance anything that either keeps its own cache (postgresql)
or something that would completely never reuse its cache, like

If you want to check out performance of your app on FreeBSD give the
open(2) syscall a flag of O_DIRECT and let me know how it changes
your numbers. :)

-Alfred Perlstein []
'Instead of asking why a piece of software is using "1970s technology,"
 start asking why software is ignoring 30 years of accumulated wisdom.'