lad@mouse.UUCP (Larry Deleski) (11/05/88)
This is a file which I downloaded from the MouseHole BBS about a year ago. At that time, Jim Reekes wrote an article on Disktimer, our beloved disk performance benchmark, and essentially exposed Disktimer for was it was (and still is), a fraud. Ephraim Vishniac would have us beleive that Reekes is a lunatic. Ephraim exhausted many hours at the keyboard disputing that article. I, for one, beleive what I read in that article. A large portion of what Reekes wrote is fact. I would like to take this opportunity to point out an error in something I said earlier. I stated that Disktimer did not use the Device Manager. It does, but not in the same way a typical SCSI driver does. What Disktimer fails to do is use the FileManager, something every driver has to do. Please read the following and decide for yourself. Reekes *does* know what he's talking about. ------------------------ DISKTIMER II vs. THE REAL WORLD DiskTimer II has been mistakenly used as the de facto standard for hard drive performance. Before I attempt to discredit any results of S. Brecher's program, I'd like to point out that I don't blame him. He is a good programmer, but I think there are some serious flaws in his benchmarkcalculations. Normally I would let this utility fade off into the sunset, but a certain hard diskvendor has taken DiskTimer and exploited it. Today, nearly every hard disk user is aware ofDiskTimer results for nearly every given drive. Brecher disclaims any similarities to realworld performance, but then what do DiskTimer results really mean? Well, they aremeaningless. Let me try to explain what disk interleaves and DiskTimer results really mean in thereal world. INTERLEAVES The ONLY reason to interleave blocks on a disk is to compensate for an interface that cannot handlethe full data transfer rate of the disk. A given disk drive has a native transfer rate that depends onthe bit density, data coding and spindle speed of the drive. If the interface of the computer is too slow for the drive's data rate, then the drive's controller chokes on reads (from disk) and starves the disk on writes (to disk). When this happens, the transfer must be suspended until thecomputer catches up. This kind of error is called a data late error. Suppose the computer was almost as fast as the disk. After the first block is read from the disk,the computer will be a bit behind in getting the data into memory. But come hell or high water,here comes the second block on the hard disk. Well, the computer just isn't ready yet ... DATA LATE ERROR ... and now we have to wait for the disk to spin completely around until the second block isagain under the drive's head. By this time the computer has been waiting for the second block. Since there are normally 26 blocks on each track, this means for every block read the computerwill have to wait for 26 more blocks to pass!!! Now THIS IS IMPORTANT!!! The block interleave is NOT a measure of performance! Just becausethe Dataframe XP use 1:1 interleave and the CMS S40 uses 6:1 does not mean the S40 is 6 timesslower. Actually, the native transfer rate of the S40 is much faster than the Dataframe XP. TheDataframe can get away with a 1:1 interleave because its transfer rate is slower than the S40. The Macintosh cannot keep up the high speed of the S40, so it is relegated to the substandardperformance of the Macintosh SCSI interface. Furthermore, 1:1 interleaving is disadvantageous due to the fact that the Macintosh only makessingle-block requests. In fact, an interleave of approximately 6:1 is optimal for handling suchrequests. Mr. Brecher himself tested this by modifying his DiskTimer (which issues multi-blockrequests) to issue single-block (or sector) requests. He ran this single-sector version ofDiskTimer, SSDiskTimer, as well as the original DiskTimer on the same drive at variousinterleaves. Below are the actual results that Mr. Brecher found. (lower times are better) INTERLEAVE CHART Interleave SSDiskTimer DiskTimer 1:1 6801 507 2:1 7206 812 3:1 7511 1116 4:1 7518 1523 5:1 6513 1827 6:1 2538 2233 7:1 2538 2537 8:1 2943 2943 As Steve says, This result clearly confirms that the about 6:1 estimate for optimal handling ofconsecutive single-block requests. It is also interesting to note that DiskTimer (withmultiple-block requests) favors a drive with a 1:1 interleave, whereas the SSDiskTimer (withsingle-block requests) demonstrates better performance at 6:1. Beside the fact the Brecher hadproven to himself that 6:1 interleave was best, he should have realized something else about hisprogram. Why do the DiskTimer results go from good to bad on the interleave scale and DiskTimer go bad to good? I'll explain this in a moment. Tom Reilly of SuperMac states; The Mac Plus is set up for a 3:1 disk interleave,... This is not accurate information. Maybe the Apple hard disk for the Macintosh Plus is set up with a 3:1interleave, but every drive manufacturer will need to determine their own interleave factor. The best interleave factor for a drive is not determine by the host computer alone. After a developerhas completely optimized his software/hardware interface, he can then test all possibleinterleaves until he achieves the desired performance. Different drive configurations will havedifferent optimal interleaves. Furthermore Tom states; The SCSI interface on the Plus requiredyou to do direct ROM calls to gain performance. Again, this is not accurate information. This isSuperMac's opinion, it is not my opinion and certainly not recommended by Apple. (The Macintosh developer guidelines clearly states never do direct ROM address calls.) I am reminded of the early Macintosh programmers that considered QuickDraw too slow. Instead ofconforming to Apple's guidelines, many decided to draw directly on the screen (ignoring windows)or jump to ROM addresses. This software blew up when Apple changed the ROMs. These programs went from high performance to no performance. We can expect Apple to continueto increase the performance and capabilities of the Macintosh ROMs, and those that continue to follow the developer's guidelines will reap the benefits without having to go back to the drawingboards to write another revision (while the customer waits). When I sit in front of a Macintosh Plus with a Dataframe XP20 or a CMS S20, I can not observeany performance differences. Both drives appear to run my applications at the same rate, eventhough DiskTimer says that the XP20 is 5.48 times faster than my CMS S20. Gary Eisenstien,Supermac's national sales manager, states the Dataframe XP is three timer faster than any otherSCSI drive available for the Macintosh. This is absolutly false! How did he ever come to believethis? He probably considers DiskTimer the final word for a drive's performance. One should not put much faith into interleave factors alone. One should understand how they affectthe user. But I would also like to point out that the FileManager of the Macintosh will only requestsingle block transfers. It is the FileManager that is responsible for all file I/O. The Macintosh will request one block, digest it, and maybe then request another block. The time the Macintoshtakes to digest a block is about the same time as it takes two blocks to pass underneath the drive's read/write heads. So, a drive with 3:1 interleave is closely in tune with the Macintosh's FileManager. Examine the chain of command from application to hard disk. Application>>FileManager>>DeviceManager>>DeviceDriver>>SCSIManager>>HDController>>HardDisk (NOTE: In some cases, such as Dataframes, the HDController is a completely separate interface board. CMS uses embedded SCSI drives, where this controller is integrated into the hard drive.) In a real world situation, an application will talk to the FileManager and request a file. TheFileManager needs to determine which blocks that the file occupies by passing a message throughthe entire chain of command to get the hard disk and read some directory informationone-block-at-a-time. Once the FileManager has found the blocks it needs, it then requests a singleblock of that file, again through all the managers, to the disk. That's one block at a time folks. DiskTimer, on the other hand, talks directly to the DeviceManager with multi-block requests. Refer to the interleave chart and look at the difference between single and multiple block requests. Clearly the results of this chart demonstrate that DiskTimer favors a drive with 1:1 interleave,and handicaps a drive that isn't. I wish the other version, DiskTimer, had been released instead. Its results are more of a real world test because of its single-block accessing method. DISKTIMER RESULTS Steve Brecher has written a benchmark program, DiskTimer, for testing the performance ofSCSI hard disks on the Macintosh. Although I respect his work, I have to critize his methods oftesting. Determining which hard disk is the better performance drive based upon DiskTimerresults can be very misleading for many reasons. For one thing, DiskTimer uses device managercalls directly. It never issues calls through the FileManager, which is the method of allapplications in the real world. DiskTimer goes directly to the device manager and requestsmultiple blocks by their block number. Applications never know what block numbers they need. This test is unfair and does not behave as a real application would. Worst of all, DiskTimer usesthe Macintosh's internal SystemTicks to calculate its resulting times. SystemTicks are in1/60th of a second and DiskTimer is attempting to measure times in 1/1000th of a second! (ie: Atypical 20MB drive's access time is 65ms and transfer rates are greater than 1MB/sec.) One very important issue that is not even being considered in DiskTimer results is whether or notthe manufacturer's SCSI drivers are performing any verification of the data that was transferred. If someone were to ignore verifying their read/writes, then they could reduce their DiskTimerresults in half! Personally, I'd rather have my data verified and ignore DiskTimer readings. Most importantly, DiskTimer should never be run on a disk containing user data. This program firstreads a block of your data, holds it in RAM, performs its test on that block, and finally writes yourdata back to the drive. It continues along with this sequence block-by-block. If you were to reset,power off, or get the bomb dialog during a DiskTimer test, then chances are you've lost data. DISKTIMER SEEK TEST The seek test does not utilize the number of data surfaces on the hard disk, the number of blocksper surface, or their size. DiskTimer can not determine if an actual seek has occurred. DiskTimer's seek test, according to the source code that I have; performs a seek by reading a block,calculates 1MB worth of (512 byte) blocks, and reading that last block. This adds two block readsto the seek time, which has nothing to do with seeks. And even more importantly, this seek testdoes not consider rotational latency. If the disk platter were required to complete an additionalrotation just to bring that second block under the disk heads, then it would add additional time tothe seek results. Moreover, the DiskTimer seek test does not consider the method of bad block allocation. Some drives store its allocated blocks on every track, others store allocation blocks at one end of the disk. If DiskTimer were to test a seek to (or across) spared blocks, it would impose unfair times for that drive. In order to perform a valid seek test, it would require a SCSI Seek command, which positions the heads without attempting to read data. At best, the read time needs to be subtracted along with the actual incurred latency. If one examines the DiskTimer results of the DataFame 20, you'll see seek times ranging from 38 to 80. How can the same hard disk display such variances? The Dataframe SCSI driver software could not possible change the true seek performance of a hard disk. The results should remain constant, because that drive has an average access time of 65ms. The only explanation for seeing such a variance is because DiskTimer's testing methods are affecting the results. FACTS ABOUT SYSTEMTICKS Consider the Macintosh's hardware limitations. In the Macintosh Plus world, the maximumtransfer rate is 320K/second. Disregarding any software limitations for the moment, theMacintosh hardware can not possibly keep up the a 1:1 interleave from the typical hard diskoperating at greater than 1MB/second. The theoretical limit is about a 3:1 interleave, as Applehas recommended. Here is a quote from Inside Macintosh (Apple's bible for the Macintosh); WARNING: Don't rely on the tick count being exact; it will usually be accurate to within one tick, but may be off by more than that. A SystemTick is 1/60th of a second. A hard disk rotates at 3600 RPM or 60 times per second. Therefore, a tick count is worth one rotation of a hard disk HYPOTHESIS What if we tested the average drive set up with the following format. 1:1 interleave 512 bytes per blocks 26 blocks per track - or - 13k per track ERROR FACTORS Tick count error is +/-1 or more. Timing a transfer of 13k, or one rotation, with SystemTickscould introduce a error of 100% or more. Because the number of ticks could be 0S, R1 or more! A tick is approximately 16.7ms while some hard disks can seek track to track in 4ms. A drive could seek across 4 or more tracks before TickCount changed. As an analogy, using ticks tomeasure a 32k read/write, would be like using a car's odometer to measure lengths of feet. CONCLUSION I understand that DiskTimer disclaims any comparisons with real world performance, but considerthe inherent errors built into the results it does present us. A 32k file or 64 blocks wouldrequire 2.46 tracks (not cylinders) of storage on the average drive. To read or write a 32k filewould require at least 2.46 rotations. SystemTicks after 2.46 rotations could be 2S or R3, andeither of these figures may be off +/- 1 or more. DiskTimer will introduce a significant errorfor each 32k read/write test. DiskTimer does 200 read/write tests and averages them to thenearest 60th of a second. Then this figure is converted to the nearest 10th of a second. Thereforeany accuracy resulting with this program, in the real or un-real DiskTimer world, would bepurely coincidental. To summarize, all DiskTimer results have been invalidated because of; 1. Multi-block requests 2. Favors a drive with 1:1 interleave 3. Ignores the FileManager calls 4. Does not perform a true seek test 5. Uses SystemTicks for calculating timing data Q.E.D. Jim Reekes (Acknowledgements to Bob Denny's material on disk interleave, Steve Brecher's source code, and other documentation that I have quoted and used as my source material.) ----------------------------
ephraim@think.COM (Ephraim Vishniac) (11/08/88)
Summary for anybody who cares: Jim Reekes presents many arguments against DiskTimer, some good, many bad, some really dumb. Larry Deleski endorses them all, but I don't. In article <698@mouse.UUCP> lad@mouse.UUCP (Larry Deleski) writes: >This is a file which I downloaded from the MouseHole BBS about a year ago. >At that time, Jim Reekes wrote an article on Disktimer, our beloved disk >performance benchmark, and essentially exposed Disktimer for was it was >(and still is), a fraud. >Ephraim Vishniac would have us beleive that Reekes is a lunatic. Ephraim >exhausted many hours at the keyboard disputing that article. I, for one, >beleive what I read in that article. A large portion of what Reekes wrote >is fact. [and the rest...] A key point here is that I think Reekes is loony not for disliking DiskTimer, but for the stupid arguments he presents against it. >I would like to take this opportunity to point out an error in something I >said earlier. I stated that Disktimer did not use the Device Manager. It >does, but not in the same way a typical SCSI driver does. What Disktimer >fails to do is use the FileManager, something every driver has to do. Still wrong. No driver uses the File Manager. The File Manager uses the drivers. Even Reekes says that! >Please read the following and decide for yourself. Reekes *does* know >what he's talking about. Let the readers decide... > DISKTIMER II vs. THE REAL WORLD >INTERLEAVES >The ONLY reason to interleave blocks on a disk is to compensate for >an interface that cannot handle the full data transfer rate of the >disk. A given disk drive has a native transfer rate that depends >onthe bit density, data coding and spindle speed of the drive. If >the interface of the computer is too slow for the drive's data rate, >then the drive's controller chokes on reads (from disk) and starves >the disk on writes (to disk). When this happens, the transfer must be >suspended until thecomputer catches up. This kind of error is called >a data late error. This is true, but becomes irrelevant to our discussion when the disk controller has a local cache which exceeds the size of a disk track. Then the crucial interface is between the disk and the controller, not between the disk subsystem (disk + controller) and the host. >Furthermore, 1:1 interleaving is disadvantageous due to the fact that the >Macintosh only makes single-block requests. Since this premise is false, all of the discussion that followed it is pointless. The Mac does make multi-block requests; not to do so would be incredibly stupid. >When I sit in front of a Macintosh Plus with a Dataframe XP20 or a >CMS S20, I can not observeany performance differences. Both drives >appear to run my applications at the same rate, eventhough DiskTimer >says that the XP20 is 5.48 times faster than my CMS S20. This is hardly surprising. As I mentioned in an earlier posting, data transfer rate is highly overrated as a performance measure. When running most applications, seek time is much more important. Data transfer rate becomes most visible in activities such as copying files. >One should not put much faith into interleave factors alone. One should >understand how they affectthe user. But I would also like to point out that >the FileManager of the Macintosh will only requestsingle block >transfers. Again, this is simply wrong, and all the discussion based on it is pointless. >DISKTIMER RESULTS >Worst of all, DiskTimer usesthe Macintosh's internal SystemTicks to >calculate its resulting times. SystemTicks are in1/60th of a second >and DiskTimer is attempting to measure times in 1/1000th of a second! >(ie: Atypical 20MB drive's access time is 65ms and transfer rates are >greater than 1MB/sec.) I very nearly agree with Jim here. These are real problems, but they can be overcome statistically. DiskTimer attempts to overcome them by repeated meaurements to gain a large sample. Brecher's error was that he starts each measurement by synchronizing with the system clock, so that (assuming a random distribution of results) he has an average underestimate of half-a-tick per measurement. For more accurate results, he should deliberately randomize his timing with respect to the clock so that over- and under-estimates are equally likely. When Brecher first came out with DiskBench (DiskTimer's predecessor) I made this same point and even wrote the code for him. He disagreed, evidently, as the change didn't survive into later versions. >One very important issue that is not even being considered in >DiskTimer results is whether or notthe manufacturer's SCSI drivers >are performing any verification of the data that was transferred. True, but how can it? If someone is silly enough to buy a disk "by the numbers" without considering quality, support, reliability, and the like, then he deserves what he gets. This point is basically irrelevant. >Most importantly, DiskTimer should never be run on a disk containing >user data. This program firstreads a block of your data, holds it in >RAM, performs its test on that block, and finally writes your data >back to the drive. It continues along with this sequence >block-by-block. If you were to reset,power off, or get the bomb >dialog during a DiskTimer test, then chances are you've lost data. Actually, DiskTimer's test consists of reading and writing the data that was already on the drive - it never overwrites the user data with anything else. So, a system failure during a write could corrupt your disk, but this is no more likely than with any other application. >DISKTIMER SEEK TEST This is prety much true. DiskTimer does an awful job with the seek test. >FACTS ABOUT SYSTEMTICKS >Disregarding any software limitations for the moment, theMacintosh >hardware can not possibly keep up the a 1:1 interleave from the >typical hard disk operating at greater than 1MB/second. The >theoretical limit is about a 3:1 interleave, as Apple has >recommended. The distinction completely lost here is between "keeping up with" and "gaining some benefit from." First, the Mac Plus can keep up with a non-cached drive (ST225N) at 2:1 interleave. Since it does this reliably, there must be some margin. Now, think about a cached drive running at 1:1. The controller can read a full track in one pass. The Mac can't read the data in that same time, but it can read it in less than two rotations. So, it gets an effective performance that's intermediate between what you see at 2:1 and what you would hope for at 1:1. Let's go back to the purpose of interleaving: matching performance. When there's no intermediate buffer (or very little), this means matching performance with the host system. When there's a sizable intermediate buffer, it means matching performance with the controller. Many sophisticated controllers don't even support variable interleaving because there's no point. The controller's internal cache effectively hides the interleaving from the host system. [The other hazard of mentioning a specific interleaving is that it implies different transfer rates for different disks. Apple's recommendation related to MFM formatted disks, which were dominant at the time. RLL formatted disks are another story.] >Here is a quote from Inside Macintosh (Apple's bible for the >Macintosh); > WARNING: Don't rely on the tick count being exact; it will usually > be accurate to within one tick, but may be off by more than that. The context, which Reekes thoughtfully omitted, states that "TickCount returns the current number of ticks since the system last started up." >A SystemTick is 1/60th of a second. A hard disk rotates at 3600 RPM >or 60 times per second. Therefore, a tick count is worth one rotation >of a hard disk >ERROR FACTORS >Tick count error is +/-1 or more. Timing a transfer of 13k, or one >rotation, with SystemTickscould introduce a error of 100% or more. >Because the number of ticks could be 0S, R1 or more! A tick is >approximately 16.7ms while some hard disks can seek track to track in >4ms. A drive could seek across 4 or more tracks before TickCount >changed. As an analogy, using ticks tomeasure a 32k read/write, >would be like using a car's odometer to measure lengths of feet. This is exactly why DiskTimer does 100 repetitions of each test. The smallest unit on my car's odometer is .1 mile (528 feet). If I drive some short distance once, I'll put little faith in what the odometer says. If I drive it a hundred times and divide the odometer reading by 100, I'll feel pretty good about the accuracy. Still, Brecher's mistake of synching to the tick count does introduce a systematic error which is easily visible on a Mac II. >CONCLUSION >To summarize, all DiskTimer results have been invalidated because of; > 1. Multi-block requests The premise was false, you'll remember. > 2. Favors a drive with 1:1 interleave If it has a significant cache. Let's not confuse different problems. > 3. Ignores the FileManager calls Irrelevant. > 4. Does not perform a true seek test True. > 5. Uses SystemTicks for calculating timing data It isn't using them that's bad, but the way they're used. So, I'd give Reekes 1.5 points out of 5, or 30%. With all its problems, DiskTimer is more accurate than that! Ephraim Vishniac ephraim@think.com Thinking Machines Corporation / 245 First Street / Cambridge, MA 02142-1214 On two occasions I have been asked, "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?"
dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (11/09/88)
Well, the way I see it (reading the two articles), DiskTimer is absolutely useless when applied to real-world file handling. However, DiskTimer isn't so bad as to preclude low-level performance comparisons between two drives... sort of the "potential" performance. It has been shown that when a filesystem makes multi-block requests to the lower level driver, performance increases in a non-trivial way. For example, BSD unix 4.1->4.2 did this (plus fixed the disk layout) and got at least a 10x improvment. C-A (Commodore-Amiga) did this and the transfer rate through the filesystem went from 60K/sec to 600K/sec. So, assuming Apple decides to apply similar fixes to their filesystem module, one ought to expect real-world numbers in the same general category as DiskTimer's results. When such a fix eventually appears one can bet the low level performance of your HD will make a big difference. -Matt
brecher@well.UUCP (Steve Brecher) (11/09/88)
In article <698@mouse.UUCP>, lad@mouse.UUCP (Larry Deleski) writes: > This is a file which I downloaded from the MouseHole BBS about a year ago. > At that time, Jim Reekes wrote an article on Disktimer, our beloved disk > performance benchmark, and essentially exposed Disktimer for was it was > (and still is), a fraud. I am the author of DiskTimer II. I am also the author of several Macintosh SCSI disk drivers, and of the firmware for several (non-SCSI) disk controllers. It is disheartening to see the republication of an article (Reekes's) which contains so much error and which I rebutted about 18(?) months ago. How a simple program like DiskTimer II, whose publication included source code, and whose user interface includes appropriate caveats about interpretation of the results could be "a fraud" is beyond me. > I would like to take this opportunity to point out an error in something I > said earlier. I stated that Disktimer did not use the Device Manager. It > does, but not in the same way a typical SCSI driver does. What Disktimer > fails to do is use the FileManager, something every driver has to do. DiskTimer II uses the disk's device driver, via _Read and _Write traps (PBRead and PBWrite) for all disk access. No device driver uses the File Manager. The File Manager uses the device driver. Applications call the File Manager which calls the Device Manager which calls the device driver which either calls the SCSI Manager or accesses the SCSI hardware directly (the latter likely to run into compatibility problems). > Please read the following [article by Reekes] and decide for yourself. > Reekes *does* know what he's talking about. Reekes has no idea of what he's talking about with respect to several issues. The following quotations indicated by ">>" are from Reekes. >> ...the Macintosh only makes single-block requests. False. The File Manager makes both single- and multiple-block requests. Reekes reiterates this error several times and bases conclusions on it. >> ...the chain of command from application to hard disk[:] >> Application>>FileManager>>DeviceManager>>DeviceDriver>> >> SCSIManager>>HDController>>HardDisk This is correct. I quote it to call it to Deleski's attention. >> DiskTimer uses the Macintosh's internal SystemTicks to calculate its >> resulting times. SystemTicks are in 1/60th of a second and DiskTimer >> is attempting to measure times in 1/1000th of a second! (ie: A typical >> 20MB drive's access time is 65ms and transfer rates are greater than >> 1MB/sec.) >> ... >> As an analogy, using ticks tomeasure a 32k read/write, would be like using a >> car's odometer to measure lengths of feet. The analogy is correct, and that's why DiskTimer II does not attempt to measure intervals such as those Reekes claims it does. DiskTimer II measures the total elapsed time to do a sequence of operations. The times measured are those reported to the user, which are usually on the orders of 10-100 deciseconds (60-600 60hz system clock interrupts). Reekes quotes Inside Macintosh to the effect that the tick count may sometimes be inaccurate by more than one tick. But the only cause of such inaccuracy is disabling of interrupts due to a continuous source of interrupts. This does not apply to DiskTimer II operations if the user follows on-screen instructions. >> DiskTimer does 200 read/write tests and averages them to the nearest >> 60th of a second. For each 100 read tests and write tests, DiskTimer II reports the *total* interval in elapsed ticks, divided by 6 (it reports deciseconds, for historical reasons). It does not attempt to measure the timing of single operations, and does no averaging. >> Most importantly, DiskTimer should never be run on a disk containing >> user data. ... If you were to reset, power off, or get the bomb dialog >> during a DiskTimer test, then chances are you've lost data. I quote this for your amusement. By this criterion, one should never run any software which writes to the disk. >> [The] seek test does not consider rotational latency. If the disk platter >> were required to complete an additional rotation just to bring that second >> block under the disk heads, then it would add additional time to the seek >> results. Rotational latency is a component of access time. As stated in the source code comments, "to a avoid constant sector skew between I/Os, which might be unfair to some drives, there is a varying delay between I/O requests. The delay is obtained via a pseudo-random number generator, using the same seed on each run." >> DiskTimer disclaims any comparisons with real world performance. DiskTimer II tells the user that "The results to not translate directly to perceived througput [sic] of typical Mac activity." Moving from response to my thoughts on this matter: DiskTimer II is a simple program that can be useful in judging the relative performance of disk subsystems on a limited set of tasks: transfers of 24KB of data to and from the disk, and a series of single-block transfers located 2048 blocks apart. The latter test is invalidated, as noted by Ephraim Vishniac, by cacheing controllers or drivers. Implementing a "real-world" benchmark of disk performance is a time-consuming task and requires a disk dedicated to the purpose, i.e., one that contains no data that needs to survive the test. Such a test requires that the exact same files be written to each disk under test and then the exact same operations performed in the same order. Only a laboratory has the resources to set up such tests. DiskTimer II was provided as a simple, non-destructive test that any user can run. It should not be relied upon as a complete measurement of disk subsystem performance. Its measurements, where not invalidated by special considerations, provide a few data points that may sometimes be useful to some people. I would have no trouble believing that a superior tool was available (I have not looked at SCSI Evaluator). But there's a lot of ignorance about the technicalities of disk performance testing, so be careful about accepting anyone's results unless you fully understand the test techniques.
alexis@ccnysci.UUCP (Alexis Rosen) (11/12/88)
I would really like to see some hard information come out of this little flame war. Right now, we have very little. The Reeks article was a fair start, and now if Ephraim cares to answer it we'll really be getting somewhere. I would like to point out one thing, though- While I'm not expert on this subject, there are some things I do know: In article <698@mouse.UUCP> lad@mouse.UUCP (Larry Deleski) writes: >I would like to take this opportunity to point out an error in something I >said earlier. I stated that Disktimer did not use the Device Manager. It >does, but not in the same way a typical SCSI driver does. What Disktimer >fails to do is use the FileManager, something every driver has to do. > >Please read the following and decide for yourself. Reekes *does* know >what he's talking about. But Larry apparently does not. To quote from the Reeks article which he appended to this same posting: >[Disk requests go through this chain:] >Application>>FileManager>>DeviceManager>>DeviceDriver>>SCSIManager>> >HDController>>HardDisk So drivers NEVER use the File Manager; it uses them. In fact the entire paragraph seems garbled. Larry might be trying to say that DiskTimer II never uses the File Manager, whereas normal programs always do. If that's true, it sounds like a valid criticism. Regardless of the merits of this argument, Larry is not demonstarting the kind of expertese that makes me want to trust his judgement on this matter. One other point- while the Reeks article sounds fairly expert, there are a few major oddities that stand out. At one point he says the seek time of the drive he's discusing is 65 ms, and thus should always yield the same seek numbers. The 'seek time' is really an average time, which bears only vauge resemblance to any individual seek. (It is is true that the same seek should take the same amount of time, not counting rotational latency.) Whether this invalidates his point depends on whether DiskTimer always seeks between the same exact tracks each time it is run on any one disk. Now, would the real expert please stand up? p.s. Please don't construe any of this as a personal attack of either Larry or Jim Reeks. I'll leave that to others :-) Flames to /dev/null. ---- Alexis Rosen alexis@dasys1.UUCP or alexis@ccnysci.UUCP Writing from {allegra,philabs,cmcl2}!phri\ The Big Electric Cat uunet!dasys1!alexis Public UNIX {portal,well,sun}!hoptoad/
alexis@ccnysci.UUCP (Alexis Rosen) (11/15/88)
In article <30643@think.UUCP> ephraim@vidar.think.com.UUCP (Ephraim Vishniac) writes (in an article about J. Reeks vs. DiskTimer II): > ... As I mentioned in an earlier posting, data >transfer rate is highly overrated as a performance measure. When >running most applications, seek time is much more important. Data >transfer rate becomes most visible in activities such as copying >files. This is what I used to think. I always looked for drives with low seek times. So I bought a Maxtor 140 MB drive in early '87. This drive performed as I expected and I was very happy with it. Later I bought a Quantum 80 MB unit with a seek time 50% slower than the Maxtor (28 ms as opposed to 18 ms) which nevertheless performed much faster in many operations. The speed came from use of the then-new "fake DMA" mode which used hardware-assisted "blind" reads and writes on the Mac II. So transfer speed had a major impact on perceived speed. I still buy drives with the lowest seek times, though (currently CDC/Imprimis Wrens). This is because I tend to use them for Multi-user file service and database accesss. Typically, that kind of application is more likely to cause lots of slow disk seeks. To summarize, what Ephraim says is true for me. I don't think it's true for the majority of single-user systems (with the exception of some database jobs). ---- Alexis Rosen alexis@dasys1.UUCP or alexis@ccnysci.UUCP Writing from {allegra,philabs,cmcl2}!phri\ The Big Electric Cat uunet!dasys1!alexis Public UNIX {portal,well,sun}!hoptoad/
ephraim@think.COM (Ephraim Vishniac) (11/16/88)
In article <989@ccnysci.UUCP> alexis@ccnysci.UUCP (Alexis Rosen) writes:
+In article <30643@think.UUCP> ephraim@vidar.think.com.UUCP (Ephraim Vishniac)
+writes (in an article about J. Reeks vs. DiskTimer II):
+> ... As I mentioned in an earlier posting, data
+>transfer rate is highly overrated as a performance measure. When
+>running most applications, seek time is much more important.
+This is what I used to think. ... Later I bought a Quantum 80 MB
+unit with a seek time 50% slower than the Maxtor (28 ms as opposed to
+18 ms) which nevertheless performed much faster in many operations.
+The speed came from use of the then-new "fake DMA" mode which used
+hardware-assisted "blind" reads and writes on the Mac II. So transfer
+speed had a major impact on perceived speed.
But the Q280 also has a large (60KB? I don't remember exactly.)
on-board cache. So the seeks may be slower, but they are also
somewhat less frequent. This is a prime example of why benchmarking
or buying disks is so damned complicated. We need an actual usage
test, but I doubt we'll ever agree on one.
Ephraim Vishniac ephraim@think.com
Thinking Machines Corporation / 245 First Street / Cambridge, MA 02142-1214
On two occasions I have been asked, "Pray, Mr. Babbage, if you put
into the machine wrong figures, will the right answers come out?"
alexis@ccnysci.UUCP (Alexis Rosen) (11/17/88)
In article <31573@think.UUCP> ephraim@vidar.think.com.UUCP (Ephraim Vishniac) writes: "In article <989@ccnysci.UUCP> alexis@ccnysci.UUCP (Alexis Rosen) writes: "+In article <30643@think.UUCP> ephraim@vidar.think.com.UUCP (Ephraim Vishniac) "+writes (in an article about J. Reeks vs. DiskTimer II): "+> ... As I mentioned in an earlier posting, data "+>transfer rate is highly overrated as a performance measure. When "+>running most applications, seek time is much more important. " "+This is what I used to think. ... Later I bought a Quantum 80 MB "+unit with a seek time 50% slower than the Maxtor (28 ms as opposed to "+18 ms) which nevertheless performed much faster in many operations. "+The speed came from use of the then-new "fake DMA" mode which used "+hardware-assisted "blind" reads and writes on the Mac II. So transfer "+speed had a major impact on perceived speed. " "But the Q280 also has a large (60KB? I don't remember exactly.) "on-board cache. So the seeks may be slower, but they are also "somewhat less frequent. This is a prime example of why benchmarking "or buying disks is so damned complicated. We need an actual usage "test, but I doubt we'll ever agree on one. How large is large? My understanding was that it was a one-track cache. This is, I believe, exactly the same as the Maxtor. In any event, a one-track cache can't have any effect on seeks, can it? I thought the primary use of this kind of cache is to eliminate rotational latency delays on requests for different sectors on the same track. There is another factor- since the Maxtor had more platters (and thus more R/W heads) it actually had to do less track-to-track seeking (more info under the heads at any one moment). Of course, there could conceivably be a disk so fragmented that this would be irrelevant. But in fact, my case was a pretty controlled test: One large 40-odd MB datafile, pre-allocated and guaranteed contiguous. ---- Alexis Rosen alexis@dasys1.UUCP or alexis@ccnysci.UUCP Writing from {allegra,philabs,cmcl2}!phri\ The Big Electric Cat uunet!dasys1!alexis Public UNIX {portal,well,sun}!hoptoad/