*BSD News Article 7530


Return to BSD News archive

Xref: sserve comp.arch:27963 comp.unix.bsd:7580 comp.os.linux:15056 comp.arch.storage:672
Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!cbmvax!jesup
From: jesup@cbmvax.commodore.com (Randell Jesup)
Newsgroups: comp.arch,comp.unix.bsd,comp.os.linux,comp.arch.storage
Subject: Re: IDE faster than Mips SCSI disk
Message-ID: <36775@cbmvax.commodore.com>
Date: 6 Nov 92 21:06:02 GMT
References: <1992Nov6.033942.21194@ntuix.ntu.ac.sg>
Reply-To: jesup@cbmvax.commodore.com (Randell Jesup)
Followup-To: comp.arch.storage
Organization: Commodore, West Chester, PA
Lines: 82

eoahmad@ntuix.ntu.ac.sg (Othman Ahmad) writes:
>These figures are not meant to be a thorough study. More of a provocation
>for more soul searching. The widespread belief that SCSI-2 is "defininely
>faster than IDE" is questionable, in fact under some circumstances, entirely
>false.

	Yes, with MAJOR qualifications (below).

>	The results are not surprising for those who study the technical
>specs of these disks. IDE has more potential for high speed because of its
>lack of protocaol overhead. Its closeness to the disk also make it very
>reliable and efficient.

	This is an advantage for very small reads.  For larger reads, the
protocol overhead is minimal compared to transfer time.  Also, protocol
overhead can vary by orders of magnitude depending on the SCSI chip used,
the driver, and the hardware around it.

>	There are advanced disks which can do simultaneour multiple-head reads,
>but these techniques can also be used for IDE as well.

	No they cannot (or at least not as well), since IDE doesn't support
the equivalent to the SCSI disconnect.  With SCSI, you can burst at 10MB/s to
drives that can only sustain 1-4MB/s, and keep several of them busy at a time
on a single bus.

>	IDE is just a simple interface definition, just like SCSI-2, but IDE,
>is optimised for HARD DISKS, SCSI is not. SCSI is more general purpose.

	SCSI is more general purpose, but a good scsi implementation should
only add a small number of microseconds to each IO.  A slow or old or poor
implementation could easily add 1-5 milliseconds to each IO (a lot if you're
doing 512 bytes/IO).

>The mips machine under test runs on ultrix. Although it has up to 10Gbyte 
>of hard-disk, it is not so heavily loaded. We only use it for email and
>news feed. Fragmentation can be severe because I cannot even have 32 
>megabyte free space in /usr/tmp , only 30 Mbytes.

	Well, this certainly can affect your tests A LOT.

>	IOZONE writes a 30 Megabyte sequential file consisting of
>	61440 records which are each 512 bytes in length.
>	It then reads the file.  It prints the bytes-per-second
>	rate at which the computer can read and write files.

	512 byte reads aren't exactly large.  Most Unix FS's use larger blocks
than that, and most stdio packages use large BUFSIZ's than that, I think.  The
difference in IO speed between 512 byte IO's and 32K IO's (at the SCSI level)
can easily be 1:20.  Actually, your kernel/fs is probably doing 1-8K transfers
to the Unix buffercache, and filling from that.  Also, Unix always uses a
buffercache and copies to user-space in the kernel, while some micro's (such as
the Amiga) will DMA direct to user space whenever possible.

>	345684 bytes/second for writing the file
>	641985 bytes/second for reading the file

	These aren't real fast times.  I have a 1gig disk on my Amiga which
does 4MB/s through the filesystem for large reads (the disk can only sustain
about 4.3MB/s off the platters).  Times like this tell you nothing about the
interface unless you (a) have SCSI and IDE versions of the SAME MODEL drive,
and (b) are running them under the same OS.  You still have to factor in
the hardware to implement both.  For example, and 53c80 SCSI chip will be
slow regardless, since it's a glorified parallel port, while an 53c720 will
push the SCSI interface to it's limits.

	When you use a benchmark, you MUST understand it's limitations to
interpret the results.  IOZONE is a very crude benchmark, especially for
making cross-interface or worse yet cross-OS comparisons.

	I advise you learn more about how things work before you go making
blanket statement like the ones above.  Also, comp.arch.storage is more
appropriate than comp.arch.

	Followups to comp.arch.storage.

-- 
To be or not to be = 0xff
-
Randell Jesup, Jack-of-quite-a-few-trades, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Disclaimer: Nothing I say is anything other than my personal opinion.