| Title: | AMIGA NOTES |
| Notice: | Join us in the *NEW* conference - HYDRA::AMIGA_V2 |
| Moderator: | HYDRA::MOORE |
| Created: | Sat Apr 26 1986 |
| Last Modified: | Wed Feb 05 1992 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 5378 |
| Total number of notes: | 38326 |
We've all heard that the FastFileSystem in 1.3 is supposed to make
your hard drive pretty fast, right? Well, talk is cheap, but
benchmarks are another thing altogether....
I've uploaded DISKPERF.ARC, which is an oldish HD benchmarking program
from Fred Fish. DISKPERF creates a temporary directory on your
hard drive to which it reads ands writes and does directory scans
etc. It runs from CLI and prints it's progress to the screen.
It sort of cleans up after itself when it's done.
I'd like this note to be used for comparing various combinations
of hardware and software to see which setups scream and which are
dogs. (I think I've been unwillingly led astray into the latter
category).
Please list your CPU specs (memory, uP, etc) and your HD specs (brand,
protocol, ie; SCSI or ST-506, avg seek specs) and your controller
specs. Also list any pertinant MOUNTLIST entries that can affect
performance.
OK, OK, I'll go first... My setup is as follows:
A2000, 3 MB RAM, 14.3 MHZ 68000 & 12 MHz 68881
Seagate ST277N (Imbedded SCSI), 40 msec seek, 65 MB
C Ltd SCSI controller running SCSIDos 3.0 (optimized<!> for FFS)
KS 1.2, WB 1.3
TEST CONDITIONS:
DISKPERF was run on DH0:, a 32 MB partition about 40% full. Due
to a recent full deep format and restore, fragmentation should be
no problem. Interleave value was deep-formatted at 2. I've run
DISKPERF with and without BLITZDISK, a disk-caching program from
MicroSmiths. When used, Blitzdisk allocated about 40K of FAST ram
for it's use. On all runs, MachII, ConMan, and Snipit were active
background tasks.
TEST 1:
BLITZDISK installed, BUFFERS = 30 in MOUNTLIST
File create/delete (files/sec) 11 cre 27 del
Directory Scan (entries/sec) 100
Read/Write speed (bytes/sec) Buffer Size Read Write
512 163840 33608
4096 131072 45197
8192 187245 43090
32768 238312 45990
TEST 2:
BLITZDISK removed, BUFFERS = 30 in MOUNTLIST
File create/delete (files/sec) 11 cre 18 del
Directory Scan (entries/sec) 100
Read/Write speed (bytes/sec) Buffer Size Read Write
512 63937 34044
4096 131072 44431
8192 187245 43690
32768 238312 45990
TEST 3:
BLITZDISK removed, BUFFERS = 8 in MOUNTLIST (recommended by C Ltd.)
File create/delete (files/sec) 11 cre 15 del
Directory Scan (entries/sec) 96
Read/Write speed (bytes/sec) Buffer Size Read Write
512 58254 34492
4096 24830 45197
8192 174762 43690
32768 218453 45990
TEST 4:
BLITZDISK removed, BUFFERS = 50 in MOUNTLIST
File create/delete (files/sec) 11 cre 20 del
Directory Scan (entries/sec) 100
Read/Write speed (bytes/sec) Buffer Size Read Write
512 63937 34044
4096 124830 43690
8192 187245 43690
32768 238312 45197
It's obvious from these figures that there's been a bit of, er,
exaggeration from C Ltd on performance under 1.3. I was told by
them that I could expect to see transfer rates of at least 350
KBytes/sec. The read performance is decent, but it really falls
down on write. People have been bitching to them on their BBS about
lackluster speeds. Their answer? Wait and buy our new HIGH SPEED
SCSI controller. Bullshit! If my current controller had had "LOW
SPEED SCSI CONTROLLER" printed on the box, I wouldn't have bought
it.
I won't go into their abysmal documentation, buggy front-end software,
and numerous fixes and patches that they 'forgot' to test for before
releasing SCSIDos 3.0. I also won't mention that the novice user
wouldn't make it to square one installing the software.
If C Ltd's software and support are typical of what's available for
the Amiga, then we're doomed.
Ed.
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 1847.1 | AGNESI::EKLOF | We're everywhere. | Thu Nov 03 1988 01:38 | 18 | |
Stock Amiga 2000, 1MB memory. Commodore A2090 controller. Seagate ST-251-1 40 meg, 28ms avg seek. Buffers = 30 in Mountlist. Drive recently reformatted (for FFS conversion). File create/delete: create 13 files/sec, delete 43 files/sec Directory scan: 94 entries/sec Seek/read test: 99 seek/reads per second Read/Write: Buff Read Write ---- ---- ---- 512 77101 27306 4096 131072 104857 8192 174762 124830 32768 238312 137970 Mark | |||||
| 1847.2 | Amazing Computing tests | MIST::TBAKER | Tom Baker - DECwest CSSE | Thu Nov 03 1988 02:18 | 12 |
There's a good article in November's Amazing Computing comparing
the 2090a, Supra, OverDrive, GVP, and C.Ltd. controllers. The same
Amiga 2000 and 63meg drive was used to test each controller. They
used Diskperf alone, Diskperf together with a 4 voice Sonix player
and a hi-res overscan display, Diskperf with Ramspeed, and various
copies and loads. It was interesting that the non-DMA controllers,
GVP and C.Ltd. had the best performance during heavy sound and graphics
use. They did mention that the C.Ltd. controller was very sensitive
to interleave setting and that you had to compromise between optimising
reads or writes.
tom
| |||||
| 1847.3 | Pacific Peripherals Controller | TLE::RMEYERS | Randy Meyers | Thu Nov 03 1988 15:28 | 118 |
Amiga 2000
68000
3 Meg
Pacific Peripherals Controller
Seagate ST-157N 48 Meg Hard Drive
(a 3.5 inch SCSI drive, 40 ms)
The tests were all done on empty partitions. PopCLI, Snipit, and GOMF
were running in background (these programs spend thier time waiting, and
so should not affect the timings).
I divided the disk into two equal partitions. The partition tested
looked something like this:
DH1: Device = overdrive.device
FileSystem = l:FastFileSystem
Unit = 1
Flags = 0
Surfaces = 6
BlocksPerTrack = 26
Reserved = 2
Interleave = 0
LowCyl = 305 ; HighCyl = 608
Buffers = 256
GlobVec = -1
BufMemType = 5
Mount = 1
DosType = 0x444F5301
StackSize = 4000
#
DH1: interleave 2 BufMemType = 5
File create/delete: create 15 files/sec, delete 30 files/sec
Directory scan: 102 entries/sec
Seek/read test: 80 seek/reads per second
r/w speed: buf 512 bytes, rd 28493 byte/sec, wr 27887 byte/sec
r/w speed: buf 4096 bytes, rd 154202 byte/sec, wr 65536 byte/sec
r/w speed: buf 8192 bytes, rd 218453 byte/sec, wr 62415 byte/sec
r/w speed: buf 32768 bytes, rd 291271 byte/sec, wr 65536 byte/sec
DH1: interleave 2 BufMemType = 3
File create/delete: create 15 files/sec, delete 31 files/sec
Directory scan: 102 entries/sec
Seek/read test: 80 seek/reads per second
r/w speed: buf 512 bytes, rd 28493 byte/sec, wr 27887 byte/sec
r/w speed: buf 4096 bytes, rd 154202 byte/sec, wr 65536 byte/sec
r/w speed: buf 8192 bytes, rd 218453 byte/sec, wr 62415 byte/sec
r/w speed: buf 32768 bytes, rd 327680 byte/sec, wr 65536 byte/sec
The number of DOS buffers (given by Buffers =) didn't seem to affect
Diskperfa's results. A smaller partition with Buffers = 30 yielded
the same results.
I started running with the buffers in fast memory because it frees up
chip ram for chip ram types of things. It also removes any possibility
of "overscan" problems. The disadvantage is that long DMA transfers can
lock the CPU out of the expansion bus--so I can see fast memory contention!
Unfortunately, using the above Mountlist caused the system to crash
frequently. The crashes seemed to occur when two separate tasks
were doing disk I/O at the same time.
By using MaxTransfer =, I was able to decrease the number of crashes.
However, it had a drastic effect on performance:
DH1: interleave 2 MaxTransfer=512
File create/delete: create 14 files/sec, delete 28 files/sec
Directory scan: 102 entries/sec
Seek/read test: 80 seek/reads per second
r/w speed: buf 512 bytes, rd 28493 byte/sec, wr 27887 byte/sec
r/w speed: buf 4096 bytes, rd 28493 byte/sec, wr 27887 byte/sec
r/w speed: buf 8192 bytes, rd 28493 byte/sec, wr 27887 byte/sec
r/w speed: buf 32768 bytes, rd 28493 byte/sec, wr 27887 byte/sec
The best results were when I changed the interleave of the disk:
DH1: interleave 10 MaxTransfer=512
File create/delete: create 15 files/sec, delete 31 files/sec
Directory scan: 102 entries/sec
Seek/read test: 64 seek/reads per second
r/w speed: buf 512 bytes, rd 45990 byte/sec, wr 37449 byte/sec
r/w speed: buf 4096 bytes, rd 47662 byte/sec, wr 43690 byte/sec
r/w speed: buf 8192 bytes, rd 48545 byte/sec, wr 45197 byte/sec
r/w speed: buf 32768 bytes, rd 48545 byte/sec, wr 45990 byte/sec
Note that MaxTransfer is the number of bytes, not buffers. The 1.3 Enhancer
docs got this wrong. The MaxTransfer should be a multiple of 512. The
system will round it up to a multiple of 512 if the value your supply isn't.
However, the system seems to fail at random, infrequent intervals even
with the MaxTransfer = 512. I've dropped back the the old file system
to see if the crashes will seem to stop. (So far, so good.)
Pacific Peripherals has a new software driver for their board. They keep
promising to send it to me, but I haven't gotten it yet. I suspect that
the new driver is the reason that they think that their board works with
no MaxTransfer specified. They've told me I can post the driver to the
net when I get it.
(I've seen the recent postings on the Pacific Peripherals controller
and the FFS on Usenet. They haven't come up with anything I haven't
already tried and rejected.)
Re: .0
Personally Ed, I think that your controller isn't doing too bad. 150000
bytes/second compares quite well with most of the PC world, and the DMA
controllers seem to have the super high speeds only for unrealistically
large buffer sizes. Programs that use 32K buffers are rare. (Well I
do know of one file viewing program that asks the system for size of
the file to be displayed, allocates a buffer large enough to hold the
whole file, and issues one read. That program really screams under the
FFS on my system! At least it screams when it doesn't crash :->.)
| |||||
| 1847.4 | Caching etc. | ALAZIF::WHERRY | Thu Nov 03 1988 15:42 | 25 | |
re. 2
I thought the GVP controller was a DMA controller.
re .0
I take it that BLITZDISK does (gag) read-only caching (no real effect
on the perf of your writes)...
CE: Caching studies here (at DEC) and elsewhere tend to indicate
that to achieve bend of the curve in performance that your cache
size should 1% of the total amount of data that you are accessing.
(not necessarily the size of your device).
After that you *generally* need to double your cache size to see
truly noticeable performance gains. Just out of curiosity, did
microsmiths mention anything about how the cache was implemented...
Did they replace HD.device or is it a "new" device that you
have to go through to gain the benefit of the cache. or, did they
mention the caching algorithm used? (I would guess simple-lru)
Also, is it a system-wide cache ie. all devices benefit or is it just
one device per cache? (or cache per device..hehe)
brad
| |||||
| 1847.5 | GVP Controller and DMA | TLE::RMEYERS | Randy Meyers | Thu Nov 03 1988 16:33 | 18 |
Re: .4 > re. 2 > > I thought the GVP controller was a DMA controller. The GVP controller is "half-DMA." The controller does DMA from the disk into a memory buffer on the controller board. The board then interrupts the CPU who then moves the on-board buffer to wherever it is supposed to go in the Amiga's memory. The first advantage of this scheme is that it works with memory that is not-DMAable. For example, the 32 bit RAM on some 68020 boards cannot be DMAed to. Second, the board doesn't run into problems with overscan (both the video subsystem and the disk subsystem may want to grab control of the memory buss at the same time). The disadvantage is that the CPU gets involved in disk I/O. | |||||
| 1847.6 | STC::HEFFELFINGER | Give my body to science fiction. | Thu Nov 03 1988 21:02 | 10 | |
Re .3
As another Overdrive owner I would be very interested in what Pacific
Periph. has to say about the overdrive.device. Please do upload
any new versions you might be sent.
We now return you to your regularly scheduled benchmarks...
Gary
| |||||
| 1847.7 | What's MaxTransfer do? | LEDS::ACCIARDI | Insert witty anti-Dukakis slogan here - | Sun Nov 20 1988 22:06 | 13 |
By adding the line...
MaxTransfer = 200
to my mountlist, I've been able to dramatically increase the
performance of my hard drive. I've plotted the performance as a
function of the MaxTransfer value, and it definately peaks at 200.
Wierd.
Ed.
| |||||
| 1847.8 | Tinker, tinker, tinker | NSSG::SULLIVAN | Steven E. Sullivan | Mon Nov 21 1988 23:39 | 27 |
Ed,
My disk setup is quite similar to yours:
> Seagate ST277N (Imbedded SCSI), 40 msec seek, 65 MB
> C Ltd SCSI controller running SCSIDos 3.0 (optimized<!> for FFS)
> KS 1.2, WB 1.3
I have been playing with maxtransfer, buffers and buffersize (in
C-Ltd's devsetup file). Max transfer of 200 had a detrimental effect
when I tried it. The larger block sizes stopped increasing
performance at 4K reads/writes.
Adjusting mountlist buffers up helped a little, but not as much
as I would have expected.
The "big one" for me was buffersize. It increased small
read/write performance by as much as 50% for me. Large read/write
performance flattened out. I tried up to 26 buffers (26 sectors per
track on the 277N) and got great performance on small end with only a
25% performance boost on the high end. Best overall performance was
with the default value of 8 in the sample devsetup file.
I am now re-formating for 1:2 interleave to see if it helps.
Thanks,
-SES
| |||||
| 1847.9 | MaxTransfer is bytes, not blocks | TLE::RMEYERS | Randy Meyers | Tue Nov 22 1988 04:06 | 29 |
Re: .7 > By adding the line... > > MaxTransfer = 200 > > to my mountlist, I've been able to dramatically increase the > performance of my hard drive. This doesn't seem right. MaxTransfer is the number of bytes that can be transferred in one I/O operation. This parameter is documented wrong in the Enhancer docs: it erroneously claims it is the number of blocks. Commodore has admitted this mistake on comp.sys.amiga. Also, the fast file system rounds this value up to the nearest block. So, MaxTransfers of 1, 200, and 512 are equivalent: one block will be transferred at a time. In general, this parameter should be always be a multiple of 512 (the number of bytes in a block). If you don't want to cramp diskperfa's style, try a MaxTransfer of 32768 (32k bytes, or 64 buffers). The last read/write test of diskperfa does I/O in 32k chunks. Are your sure you were not setting the Buffers= parameter instead of MaxTransfer=. My tests (which I've done a lot of since I was encountering gurus) verified that the MaxTransfer parameter is bytes, not blocks, and that values less than 513 severely limit the speed of the drive. | |||||
| 1847.10 | Interleave | TLE::RMEYERS | Randy Meyers | Tue Nov 22 1988 04:18 | 16 |
Re: .8 > I am now re-formating for 1:2 interleave to see if it helps. That will make a big difference. The primary speedup in the Fast File System comes from being able to do large multi-block transfers. The limiting speed on these transfers is how fast the proper blocks pass under the read heads. The typical interleave for the old file system was 16. This means the system can only pick up two or three blocks per rotation of the disk. If the interleave is 2, twelve or thirteen blocks per rotation. That's a factor of six speedup! An interleave is too fast for the Fast File System. Two seems just right. | |||||
| 1847.11 | MaxTransfer = 230000 | LEDS::ACCIARDI | Time to change this damn message | Tue Nov 29 1988 23:25 | 9 |
Re: MaxTransfer Value in Mountlist
It appears that BLITZDISK (my disk cacheing utility) was heavily
skewing the DiskPerf times. After speaking with C Ltd, I ended
up with MaxTransfer = 230000. This seems to give the best all-around
performance with or without BlitzDisk.
Ed.
| |||||
| 1847.12 | Where is it? | CSC32::J_PARSONS | Like Lesser Birds on the 4 Winds... | Tue Jan 10 1989 12:41 | 1 |
Does anyone still have diskperf.arc online? | |||||
| 1847.13 | WJG::GUINEAU | Tue Jan 10 1989 16:16 | 3 | ||
Yup, WJG::AMIGA: JOhn | |||||