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
platters.

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



--
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to
"freebsd-performance-unsubscr...@freebsd.org"
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"

Reply via email to