Contents of the THRASHER.DOC file
A program to test the optimum BUFFERS number for your CONFIG.SYS
By Monte Ferguson rel 1.0 12/16/86
DOS, starting with version 2.0, uses a special file called CONFIG.SYS when
it boots to set certain parameters and options. One of the options that can
be set is the number of BUFFERS to be allocated.
If you don't know what the BUFFERS command does, I suggest you get out your
DOS manual and look it up. In brief, the BUFFERS command allows DOS to do
some disk cacheing. That is, it will keep the most often used portions of the
disk in memory, and look to memory for what it needs before going out to the
disk. Because memory access is much faster than disk access, this can save a
considerable amount of time. This is a glossed-over description of what's
going on, but it should suffice (go read your Fine DOS Manual, fer cryin out
Now, in your CONFIG.SYS file, you can specify just HOW MANY buffers DOS
should use. This is done with the following command:
where "x" is a number between 1 and 99. If you don't use a BUFFERS command,
DOS will default to 2 buffers.
Every buffer you ask DOS to use eats up 528 bytes of your RAM. Now, if
you've got oodles and oodles of RAM, you figure, "What the heck - let's crank
that sucker up to 64 and get these disks really jumping !".
You reach a point of diminishing returns - that is, if you specify TOO MANY
buffers, it will take DOS so long to look through them all, that it would
have been faster just to read the *@#%`%^! thing directly from the disk !
So, how do you find the OPTIMUM number of buffers to use for your system ?
Unfortunately, no one can give you a magic number and say "here - use this".
The number you should use depends on the types of disk you're using, and
probably the phase of the moon. So, it's suggested that you use trial and
error to figure out your number.
Ick. In order to change the number of buffers DOS is using, you've not only
got to change the CONFIG.SYS, but you have to re-boot your computer and run
your tests all over again... time consuming, and not much fun.
Which brings us to THRASHER. These programs will basically do all your trial
and error testing for you, while you get on with doing more important and
exciting things (like trimming your toenails).
Here's the list of files that you SHOULD have in your .ARC file:
AUTOEXEC.BAT - An example AUTOEXEC batch file. You can write your own
if you're so inclined. As it is, you'll probably have
to edit this one anyhow...
JOBQ.BAT - You don't really need this, but it's included for the
sake of completeness. THRASHER.EXE creates this. I'll
describe it's use below.
WARMBOOT.COM - A very tiny program that will cause your computer to
warm boot (as though you had pressed the Ctrl-Alt-Del
key sequece). This was written by Gee M. Wong, and I
thank him (her ?) for it.
THRASHER.DOC - What you're reading now !
THRASHER.EXE - The main program.
CONFIG.SYS - An example CONFIG.SYS file. Again, write yer own, or
edit this one.
How to use THRASHER
1) Format a new floppy disk with the /S option (so it's bootable). See
your DOS manual for details. We'll refer to this as the "Thrasher Disk" from
2) Copy the following files from your ARC file to the Thrasher Disk:
THRASHER.EXE AUTOEXEC.BAT CONFIG.SYS WARMBOOT.COM
3) Use some sort of ASCII editor (or even *uugh* EDLIN) to change the
THRASHER line in AUTOEXEC.BAT to the parameters you need (see below for
4) Again using your ASCII editor, change the BUFFERS statement in the
CONFIG.SYS file to the number of buffers you want to start testing with
5) Stick the Thrasher disk in drive A: of your system, and re-boot.
6) Go kill some time while it grinds away.
When the program is done running, it'll be at the DOS prompt. And you'll
have a file on your Thrasher Disk called BUFFERS.RPT. This is a report
telling you just how the different BUFFERS values worked out. You can send
the report to your printer by executing the command
TYPE A:BUFFERS.RPT >LPT1:
or, you can see it on the screen by executing the command
By looking at the elapsed times of the different BUFFERS values, you can
find out what the best BUFFERS value for the drive tested is.
Tested drive A:. With BUFFERS=01, elapsed time is 2009 seconds.
Tested drive A:. With BUFFERS=02, elapsed time is 954 seconds.
Tested drive A:. With BUFFERS=03, elapsed time is 480 seconds.
Tested drive A:. With BUFFERS=04, elapsed time is 334 seconds.
Tested drive A:. With BUFFERS=05, elapsed time is 327 seconds.
Tested drive A:. With BUFFERS=06, elapsed time is 323 seconds.
Tested drive A:. With BUFFERS=07, elapsed time is 320 seconds.
Tested drive A:. With BUFFERS=08, elapsed time is 315 seconds.
Tested drive A:. With BUFFERS=09, elapsed time is 310 seconds.
Tested drive A:. With BUFFERS=10, elapsed time is 339 seconds.
Tested drive A:. With BUFFERS=11, elapsed time is 337 seconds.
Tested drive A:. With BUFFERS=12, elapsed time is 332 seconds.
Tested drive A:. With BUFFERS=13, elapsed time is 328 seconds.
Tested drive A:. With BUFFERS=14, elapsed time is 323 seconds.
Tested drive A:. With BUFFERS=15, elapsed time is 319 seconds.
Tested drive A:. With BUFFERS=16, elapsed time is 314 seconds.
Tested drive A:. With BUFFERS=17, elapsed time is 311 seconds.
Tested drive A:. With BUFFERS=18, elapsed time is 306 seconds.
Tested drive A:. With BUFFERS=19, elapsed time is 333 seconds.
Tested drive A:. With BUFFERS=20, elapsed time is 331 seconds.
Tested drive A:. With BUFFERS=21, elapsed time is 327 seconds.
Tested drive A:. With BUFFERS=22, elapsed time is 323 seconds.
Tested drive A:. With BUFFERS=23, elapsed time is 319 seconds.
Tested drive A:. With BUFFERS=24, elapsed time is 315 seconds.
Tested drive A:. With BUFFERS=25, elapsed time is 311 seconds.
Tested drive A:. With BUFFERS=26, elapsed time is 308 seconds.
Tested drive A:. With BUFFERS=27, elapsed time is 313 seconds.
Tested drive A:. With BUFFERS=28, elapsed time is 328 seconds.
Tested drive A:. With BUFFERS=29, elapsed time is 325 seconds.
Tested drive A:. With BUFFERS=30, elapsed time is 322 seconds.
Tested drive A:. With BUFFERS=31, elapsed time is 318 seconds.
Tested drive A:. With BUFFERS=32, elapsed time is 314 seconds.
This is the report I got from running my Thrasher Disk on a plain old IBM
PC, 640k RAM, DOS version 3.1. As we can see, there is a DRAMATIC difference
between just two buffers, and three buffers ! Now you see how important using
the buffers command is... Anyhow, it would seem that a BUFFERS=9 command
would be best for a system that used it's floppy drive primarily.
How does the Thrasher Disk work ? Here's the sequence, as the computer sees
Load DOS into memory
Read the CONFIG.SYS file, set up BUFFERS
Execute the AUTOEXEC.BAT file
AUTOEXEC sez: Run THRASHER
THRASHER sez: Test the drives, write a report, change CONFIG.SYS
THRASHER sez: If we're done, write WARMBOOT to JOBQ.BAT, else write DONE
AUTOEXEC sez: Run JOBQ.BAT
Execute the JOBQ.BAT file
JOBQ.BAT (was written by Thrasher)
Either do a WARMBOOT (go to START) or tell user we're done, and quit.
Got that ?
How THRASHER.EXE works
The THRASHER.EXE program does several things:
1) It puts the requested disk drive through it's paces, and times the
2) It writes the results of the test to the A:BUFFERS.RPT file.
3) It updates the A:CONFIG.SYS file with an incremented BUFFERS number.
4) It writes the JOBQ.BAT file, which tells DOS to either re-boot, or quit
THRASHER creates a test file called THRASHER.$$$. This can be deleted, it
contains no useful data (it just exists to give THRASHER something to do).
There are two command line parameters that THRASHER looks for. Here is the
THRASHER /TARGET=d: [/MAXBUF=nn]
where d: is the drive you want to test, and nn is how high the BUFFERS
statement can go before THRASHER quits.
You MUST specify a /TARGET= parameter, or you'll get a message from
THRASHER, and it'll quit.
The /MAXBUF= parameter can be ommited. If it is NOT present, THRASHER will
execute a "One-Shot" test of the target, and it will NOT write to the
BUFFERS.RPT file, JOBQ.BAT file, or CONFIG.SYS file. This can be used to
compare disk drive speeds to each other...
Yet More Details
Thrasher uses three tests on a disk: 1) It writes a file (THRASHER.$$$) with
1000 records, each 100 bytes long. 2) It then swaps these records around:
record 1 with record 1000, 2 with 999, 3 with 998, etc. 3)It then shuffles
the records - writing record 1 to record 2, 2 to 3, 3 to 4, etc.
I called the program THRASHER for a very good reason - your drive head is
gonna thrash around like you won't believe (especially at the lower BUFFERS
numbers). This puts a fair amount of wear and tear on a disk drive in a short
period of time. I don't recommend running this program every day...
When THRASHER writes it's report to the BUFFERS.RPT file, it appends the
file. So if it doesn't exist, it will be created... if it does exist, it will
be added to.
That's all I can think of to say about this program. I hope you find it
useful... you will probably only run it once, or whenever you get a new
kind of disk drive. Have Fun !
Written by: Monte Ferguson
Comments, critique, questions, etc should be addressed to:
833 W. Highland
Or contact me on PC-OHIO, (216) 381 3320
Send me $10.00 and I'll send you the source code....
Another fine product from GIANT FLAMING TOAD SOFTWARE