ephraim@wang.UUCP (pri=8 Ephraim Vishniac x76659 ms1459) (03/25/86)
> From: BRECHER (6675) > Subject: Hard Disk Benchmark > Date: 21-MAR 05:48 Hardware & Peripherals > > I wrote a simple disk performance benchmark program and have submitted it > with its MDS assembler source code to the Hardware database. [on Delphi, > also posted to net.sources.mac] > > The test is designed to measure hardware and disk driver performance, with no > influence from the file system (HFS/MFS) or volume/file/Finder configuration. > The program issues I/O requests directly to the disk driver. > > The benchmark consists of three parts: > > (1) 100 reads of 32KB of data from the start of the volume; > (2) 100 writes of 32KB of data to the start of the volume; > --the above two tests measure data transfer speed; 32KB was chosen to > be a reasonably large chunk, but not so large that it would cross a > cylinder boundary (thus not requiring any head movement). > > (3) 40 iterations of: read one 512-byte block from an offset of 1MB, followed > by read of one 512-byte block from start of volume; > --the above test measures access time, i.e., seek or head movement speed. > > [some test results...] > > I encourage those with access to other hard disks to report results with this > benchmark. I would be very wary of taking results from this benchmark at face value. Why? Because the results of read/write speed tests are strongly dependent on the unit transfer size. 32KB is a convenient choice for the test, but I'm sure it's not a *realistic* one. What is? I don't know (yet). In choosing the interleaving for my own hard disk (MacSCSI interface with my own MDS-assembler driver), I ran a benchmark that did read-write tests for a series of transfer sizes from 1 to 20 sectors, reformatted with different interleaving, and ran again. To optimize for Brecher's Diskbench, I should have chosen an interleave factor of 4. To optimize for single-sector transfers, I should have chosen an interleave factor of 17! (I've since improved the driver, but haven't re-run the benchmark lately.) Before people start making buying decisions based on the results from part one or two of Diskbench, let's get some idea what the distribution of read and write sizes really is. Unless someone else has a tool handy, I'm volunteering to write a program that will hook into disk driver calls and collect this data. Please mail any suggestions to me directly at [most backbone sites]!decvax!wanginst!wang!ephraim since followups to net.micro.mac probably won't reach me before I've written the program. Ephraim Vishniac decvax!wanginst!wang!ephraim
breuel@h-sc1.UUCP (03/30/86)
|[to optimize single block transfers, I should have chosen an |interleave factor of 17, for the benchmarks, I should have chosen |an interleave factor of 4!] I don't think it makes sense to choose interleave factors on the basis of anything but large reads/writes. The reason is that for small transfers the interleave factor will depend to a very large degree on the setup time for each transfer, which is completely unpredictable from application to application. Thomas.