Why are disk writes so slow?

Ingo ingom-list at freenet.de
Sat Dec 25 11:12:41 UTC 2010

On 09/26/06 10:46, Mark Bucciarelli wrote:
> I am reading Richard Stevens' "Advanced Programming in the UNIX
> Environment," a most excellent book.
> Out of curiosity, I tried his I/O efficiency program on my IBM
> A30 Thinkpad, running 6.0-RELEASE with default tuning parameters.
> The test program reads file on stdin and writes to stdout, and
> you modify bufsize to watch how time changes.
> As in his example (with a bufsize of 8192),    time ./a.out <  
> 1.5M-testfile > /dev/null
> runs five times faster than (clock time)
>      time ./a.out < 1.5M-testfile > /a.out.out
> Can someone explain to me why writing is five times as slow as
> writing?  What's going on in the computer? The file is not O_SYNC, so it  
> can't be validating the data on the
> disk.
> Later in the same chapter, he shows the impact of O_SYNC flag. I
> re-ran this experiment too, and while everything is two orders of
> magnitude faster than his times in the book, the relative speed
> of writing with O_SYNC is three times slower.
>                     1993       2006
>                     -----       ----
>     normal write     2.3s       .023s
>     O_SYNC          13.4s       .364s
>     slowdow factor   5.8        15.8
> Is this all b/c disks are so much larger?

It's probably because of caching on the disk.  The normal write goes
in/out of the on-disk cache, the O_SYNC may be forced to go to the

Also, if you didn't already, you should run the test many times,
umounting/mounting the filesystem in question in between each test.
Also, I recommend using a block device, instead of a file on a
filesystem, since the filesystem could allocate blocks for the file
differently each time, causing varying results.


Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
freebsd-performance at freebsd.org mailing list
To unsubscribe, send any mail to
"freebsd-performance-unsubscribe at freebsd.org"

More information about the freebsd-performance mailing list