From: Jonathan Morton <chromi@cyberspace.org>
To: Linus Torvalds <torvalds@transmeta.com>,
Jeremy Hansen <jeremy@xxedgexx.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: scsi vs ide performance on fsync's
Date: Tue, 6 Mar 2001 03:30:00 +0000 [thread overview]
Message-ID: <l03130307b6ca031531fc@[192.168.239.101]> (raw)
In-Reply-To: <Pine.LNX.4.10.10103051819530.8391-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.33L2.0103052108590.32449-100000@srv2.ecropolis.com>
I've run the test on my own system and noted something interesting about
the results:
When the write() call extended the file (rather than just overwriting a
section of a file already long enough), the performance drop was seen, and
it was slower on SCSI than IDE - this is independent of whether IDE had
hardware write-caching on or off. Where the file already existed, from an
immediately-prior run of the same benchmark, both SCSI and IDE sped up to
the same, relatively fast speed.
These runs are for the following code, writing 2000 blocks of 4096 bytes each:
fd = open("tst.txt", O_WRONLY | O_CREAT, 0644);
for (k = 0; k < NUM_BLKS; ++k) {
write(fd, buff + (k * BLK_SIZE), BLK_SIZE);
fdatasync(fd);
}
close(fd);
IDE: Seagate Barracuda 7200rpm UDMA/66
first run: 1.98 elapsed
second and further runs: 0.50 elapsed
SCSI: IBM UltraStar 10000 rpm Ultra/160
first run: 23.57 elapsed
second and further runs: 0.55 elapsed
If the test file is removed between runs, all show the longer timings.
HOWEVER if I modify the benchmark to use 2000 blocks of *20* bytes each,
the timings change.
IDE: Seagate Barracuda 7200rpm UDMA/66
first run: 1.46 elapsed
second and further runs: 1.45 elapsed
SCSI: IBM UltraStar 10000 rpm Ultra/160
first run: 18.30 elapsed
second and further runs: 11.88 elapsed
Notice that the time for the second run of the SCSI drive is almost exactly
one-fifth of a minute, and remember that 2000 rotations / 10000 rpm = 1/5
minute. IOW, the SCSI drive is performing *correctly* on the second run of
the benchmark. The poorer performance on the first run *could* be
attributed to writing metadata interleaved with the data writes. The
better performance on the second run of the first benchmark can easily be
attributed to the fact that the drive does not need to wait an entire
revolution before writing the next block of a file, if that block arrives
quickly enough (this is a Duron, so it darn well arrives quickly).
It's pretty clear that the IDE drive(r) is *not* waiting for the physical
write to take place before returning control to the user program, whereas
the SCSI drive(r) is. Both devices appear to be performing the write
immediately, however (judging from the device activity lights). Whether
this is the correct behaviour or not, I leave up to you kernel hackers...
IMHO, if an application needs performance, it shouldn't be syncing disks
after every write. Syncing means, in my book, "wait for the data to be
committed to physical media" - note the *wait* involved there - so syncing
should only be used where data integrity in the event of a system failure
has a much higher importance than performance.
--------------------------------------------------------------
from: Jonathan "Chromatix" Morton
mail: chromi@cyberspace.org (not for attachments)
big-mail: chromatix@penguinpowered.com
uni-mail: j.d.morton@lancaster.ac.uk
The key to knowledge is not to rely on people to teach you it.
Get VNC Server for Macintosh from http://www.chromatix.uklinux.net/vnc/
-----BEGIN GEEK CODE BLOCK-----
Version 3.12
GCS$/E/S dpu(!) s:- a20 C+++ UL++ P L+++ E W+ N- o? K? w--- O-- M++$ V? PS
PE- Y+ PGP++ t- 5- X- R !tv b++ DI+++ D G e+ h+ r- y+
-----END GEEK CODE BLOCK-----
next prev parent reply other threads:[~2001-03-06 3:31 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-02 17:42 Jeremy Hansen
2001-03-02 18:39 ` Steve Lord
2001-03-02 19:17 ` Chris Mason
2001-03-02 19:25 ` Steve Lord
2001-03-02 19:27 ` Jeremy Hansen
2001-03-02 19:38 ` Chris Mason
2001-03-02 19:41 ` Steve Lord
2001-03-05 13:23 ` Andi Kleen
2001-03-02 19:25 ` Andre Hedrick
2001-03-03 1:55 ` Dan Hollis
2001-03-02 20:56 ` Linus Torvalds
2001-03-06 2:13 ` Jeremy Hansen
2001-03-06 2:25 ` Linus Torvalds
2001-03-06 3:30 ` Jonathan Morton [this message]
2001-03-06 4:05 ` Linus Torvalds
2001-03-06 7:03 ` Andre Hedrick
2001-03-06 8:24 ` Jonathan Morton
2001-03-06 12:22 ` Rik van Riel
2001-03-06 14:08 ` Jonathan Morton
2001-03-07 16:50 ` Pavel Machek
2001-03-06 19:41 ` Andre Hedrick
2001-03-07 5:25 ` Jonathan Morton
2001-03-07 6:58 ` Andre Hedrick
2001-03-09 11:39 ` Jonathan Morton
[not found] <Pine.LNX.4.33L2.0103021033190.6176-200000@srv2.ecropolis.com>
[not found] ` <054201c0a33d$55ee5870$e1de11cc@csihq.com>
2001-03-04 20:10 ` Douglas Gilbert
2001-03-04 21:28 ` Ishikawa
2001-03-06 0:11 ` Douglas Gilbert
2001-03-06 5:27 Douglas Gilbert
2001-03-06 5:45 ` Linus Torvalds
2001-03-06 7:12 ` Andre Hedrick
2001-03-06 12:09 ` Alan Cox
2001-03-06 18:44 ` Linus Torvalds
2001-03-07 13:48 ` Stephen C. Tweedie
2001-03-07 14:13 ` Jens Axboe
2001-03-12 18:50 ` Andre Hedrick
2001-03-06 13:50 ` Mike Black
2001-03-06 16:02 ` Jeremy Hansen
2001-03-07 18:27 ` Jeremy Hansen
2001-03-07 18:36 ` Linus Torvalds
2001-03-08 11:06 ` Stephen C. Tweedie
2001-03-06 16:57 ` Jonathan Morton
2001-03-06 6:43 ` Jonathan Morton
2001-03-06 13:03 ` dean gaudet
2001-03-06 13:15 ` dean gaudet
2001-03-06 13:45 ` Jonathan Morton
2001-03-06 17:14 David Balazic
2001-03-06 17:46 ` Gregory Maxwell
2001-03-06 18:23 ` Jonathan Morton
2001-03-06 23:27 ` Mark Hahn
2001-03-06 19:42 David Balazic
2001-03-06 20:37 ` Jens Axboe
2001-03-07 13:51 ` Stephen C. Tweedie
2001-03-07 14:12 ` Jens Axboe
2001-03-07 15:05 ` Stephen C. Tweedie
2001-03-07 18:51 ` Jens Axboe
2001-03-07 19:10 ` Stephen C. Tweedie
2001-03-07 20:15 ` Jens Axboe
2001-03-07 20:56 ` Stephen C. Tweedie
2001-03-07 20:59 ` Jens Axboe
2001-03-08 15:45 ` Chris Mason
2001-03-07 12:47 David Balazic
[not found] <1epyyz1.etswlv1kmicnqM%smurf@noris.de>
2001-03-09 6:59 ` Matthias Urlichs
2001-03-09 11:51 ` Jens Axboe
2001-03-09 14:26 ` Matthias Urlichs
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='l03130307b6ca031531fc@[192.168.239.101]' \
--to=chromi@cyberspace.org \
--cc=jeremy@xxedgexx.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®