Document: diskmbps.txt File Group: Classic Benchmarks Creation Date: 26 May 1997 Revision Date: Title: Disk Data Transfer Rate Test Keywords: BENCHMARK PERFORMANCE DISK NETWORK CD Abstract: This document contains details of pre-compiled C programs that measure disk data transfer rates either on the main PC disk or a network drive. Memory transfer rates from disk cache can also be measured. An option is also provided to read any existing file including from CD ROM drives. The program generates a time stamped log file, making it suitable for multitasking tests. Windows 95/NT, OS/2 and DOS versions are supplied. Note: The program is still under test and should be treated as beta test software. Please submit feedback directly directly to Roy, or as a posting in Section 12. WARNING The programs have been tested on various PCs including 486, Pentium and Pentium Pro systems. They have also been run via Windows 95 and NT 4.0. The DOS versions have also been run directly in the associated DOS mode and when booted as DOS only with MS DOS 6.2. However, it is inevitable that they will not run properly in all circumstances or occasionally may cause certain systems to hang. Likely reasons for failure include hardware or software incompatibility but particularly miss use. Before running the programs, ensure that sufficient free disk space is available. Filling the disk to the last byte can have serious consequences. RUN AT YOUR OWN RISK Contributor: Roy_Longbottom@compuserve.com DISK DATA TRANSFER RATE TEST 0. SUMMARY DISKDOS.EXE, DISKNT95.EXE and DISKOS2.EXE are compilations of a disk performance test to run via DOS, Windows 95 or NT and OS/2 respectively. DISKDOS requires DOS4GW.EXE the protected run-time program. Parameters are required to define the file size and number of read passes, either by manual input or run time parameters appended to a xxxxx.EXE command line. The program writes and reads a single serial file to disk. This can be a disk on a remote computer. The parameters define the file size and number of read passes. Using different parameters, the program can read an existing file from disk or CD ROM. By defining the file size somewhat smaller than RAM size, the program can measure data transfer rates via a RAM based disk cache. The program calculates the data transfer rate in megabytes per second, displaying the results after writing and for each read pass. The results are also saved in a log file with name format JHHMMSSZ.TXT, where HHMMSS represent the time that the test started and Z can be changed to a different letter to avoid contention when multiple copies are run simultaneously. The data file name is JHHMMSSZ.TMP. The programs can be used for testing multitasking capabilities. 0.1 FAST START Unzip the programs into a new directory. Result logs will be written in this directory when the programs are run. Note free disk space. DO NOT RUN WITH FILE SIZES GREATER THAN THE FREE SPACE. The program can be run on compressed disks but some care is required on interpretation of results. Windows varieties - close all other applications - display new directory - click on EXE icon. DOS - reboot in direct DOS mode - change directory to that defined - enter DISKDOS at command prompt. Batch test Construct a BAT file (CMD file OS/2) with commands such as: DISKNT95 100 4 DISKNT95 16 20 to write a 100 MB file and read it four times, followed by a 16 MB file read 20 times. Click on the BAT file icon or execute the BAT file from a command line prompt. Multitask Construct a BAT file (CMD file OS/2) with commands such as: Start DISKNT95 50 6 A Start DISKST95 40 5 B E:\TEMP\ Start DISKNT95 0 4 C D:\funstuff\videos\weezer.avi to run three versions of the program concurrently - write 50 MB file and read six times, results log suffix A - write 40 MB file on network drive E: and read four times, results log suffix B - read CD ROM file four times, results log suffix C. Click on the BAT file icon or execute the BAT file from a command line prompt. 1. INTRODUCTION The program was compiled from DISKUT.CPP by a Watcom C/C++ 10.5 compiler. It can be run from a local disk or a network drive. Manual run time input parameters are provided for Server Name, Client Name, File Size (Megabytes), and number of times to read the file. Alternatively, the program can be run with no manual input via run time parameters, including the file path. This provides flexibility in testing network drives A further option is a read only facility, particularly provided so that CD ROM data transfer rates can be measured. The data transfer rates in megabytes per second are measured for both writing and reading, the results being displayed and sent to a results file. The program reads and writes using 64KB block sizes but the size used by the Operating System will probably be different. With a file (or files) somewhat smaller than available RAM, the program can measure data transfer rates from a memory based disk cache. When testing on a network, the file should generally be greater than the RAM size on the PC that is running the program to ensure that data is not retained in a local cache. The filenames are mainly derived from the clock time to try to ensure that different names will be used if multiple versions are run. The format is JHHMMSSZ.TMP for the data file and JHHMMSSZ.TXT for the results file. The run time parameters allow the Z suffix to be changed to different characters as a further protection when multiple tasks are started at the same time. Versions provided are DISKNT95.EXE for Windows 95 and NT, DISKOS2.EXE for OS/2 and DISKDOS.EXE for MS DOS. The latter needs DOS4GW.EXE the protected run-time program. 2. DATA The program writes 16 blocks of 16384 words (4 bytes each) per megabyte. The same data, with numbers 1 to 16384 in the block, is repeatedly written. On reading, the last word is checked. These procedures were adopted to reduce CPU time due to data generation and checking results. 3. EXAMPLE SCREEN DISPLAY The following is for a large file and manual input. DISKUT C++ Disk Performance Test NT Version 1 Thu May 15 22:24:44 1997 Copyright (C) 1997, Roy Longbottom. All rights reserved J222444Z Enter server computer name: PPRO J222444Z Enter client computer name: PPRO File Size - Enter number of 1048576 repeats 33 Data File J222444Z.tmp 33.0 Mbytes Enter number of read passes 4 Data file closed 34603008 bytes (data*33) 8.62 seconds for writing file at 3.83 Mbytes/second 11.98 seconds for read pass 1 at 2.75 Mbytes/second 10.38 seconds for read pass 2 at 3.18 Mbytes/second 10.82 seconds for read pass 3 at 3.05 Mbytes/second 11.75 seconds for read pass 4 at 2.81 Mbytes/second End of program - results are in file J222444Z.txt Press any key to end 4. EXAMPLES FILE OUTPUT The results output file is similar to above, except a time stamp is given indicating when a pass finishes. Examples given in appendices include: Large and small files written and read on a Pentium Pro (PPRO) based PC Large and small files written and read on a 100 MHz Pentium (P100) based PC Large and small files written and read on an 80486DX2/66 (486) based PC Reading large CD ROM file on PPRO Reading large CD ROM file on P100 PPRO client, access via LAN to files on P100 server, large and small files P100 client, access via LAN to files on PPRO server, large and small files P100 and 486 clients, access via LAN to files on PPRO server large files Small files are invariably read from memory based disk caches. Results include via Windows 95 (P100 and 486), NT 4.0 (PPRO) and MS DOS 6.2 (All). 5. MANUAL INPUT PARAMETERS These can be used when an EXE file is run from a command line prompt or via a BAT file. The format is MMM RR X Path, where MMM is the file size in megabytes and RR is the number of read passes. X represents a unique character to replace Z in the data file name when multiple copies of the program are run. The path parameter identifies the disk drive and directory and is particularly provided for testing a remote computer. If the path is included, the unique file character must be provided or the path will be ignored. Examples are: DISKDOS 25 8 DOS command to write a 25 MB file in the same directory as DISKDOS.EXE and to read it 8 times. This could also be in a BAT file which could be run by clicking on the icon. Start DISKNT95 33 6 A Start DISKNT95 33 6 B This could be in a BAT file to run two versions at the same time under Windows 95 or NT with data file suffixes of A and B. DISKNT95 32 6 DISKNT95 20 12 This could be in a BAT file to first run a disk test on a Windows 95 or NT system with 32 MB memory, followed by a test where the data would eventually reside in the memory based disk cache to provide memory data transfer rates. DISKNT95 20 8 Z E:\TEMP\ This would generate a file for testing on network drive E in TEMP directory. DISKNT95 20 8 E:\TEMP\ This is WRONG. With the file letter missing, a local file will be written with file name suffix E. Reading only is achieved by defining the first parameter as 0. The second parameter still defines the number of read passes. The file suffix character must still be given. The fourth parameter defines the path and file to be read. The following example to read a file from CD ROM could be a command or included in a BAT file: DiskNT95 0 4 N D:\funstuff\videos\weezer.avi Note that the file is 30 MB and is on the Windows 95 CD ROM. 6. TESTING VIA A REMOTE CLIENT The program can be run by clicking on the icon from a directory display on a remote computer for use with manual input parameters. In this case, the data file will be generated on the server. The EXE file can also be on the client with run time parameters specifying a directory on a server, as indicated above. With the file on the server, the following methods can be used, for example: F:\TEST\DISKNT95 32 6 Downloads the program and runs using the client disk F: CD \TEST\ DISKNT95 32 6 Downloads the program using files on server F disk Some consideration of client and server memory capacity is required for remote testing. In order to ensure that the network is used for reading and the data is not retained in the local memory based disk cache, the file size must be greater than available memory capacity on the client. The size must also be greater than memory on the server to use the disk continuously. With an appropriate balance of memory capacity, the fastest communications transfers are likely to be obtained where the file can reside in server disk cache. On carrying out tests with multiple CPUs, it is ESSENTIAL that all system clocks are set at the same time (within a second or so) if the results are to be interpreted later, taking into account concurrent activity. 7. SPEED EXPECTATIONS The data transfer rates obtained by this program may not be as high as that obtained via specially written hardware test programs. These are likely to be written in assembly language, only run under DOS and may even access disk sectors directly, ignoring the logical disk structure. Such programs can also just read data without doing anything with it. All modern disk drives have a cache in the disk controller. When a read request is issued, the cache will be filled with sequential data. The first part of the data will also be transferred to memory. Following read requests can transfer data from the disk controller cache at high speed. One fact is certain. A sustained data transfer rate faster than can be delivered by the disk is not possible. Sometime ago, most disk drives had 63 x 512 byte sectors per track and rotated at 3600 RPM or 60 revolutions per second. The maximum sustained transfer rate would be 63 x 0.5 x 60 = 1890 Kbytes per second or, dividing by 1024, 1.846 megabytes per second. The actual transfer rate obtained can be considerably less than this for various reasons, including: Fragmentation, where the data is not in consecutive sectors and disk revolutions are wasted. In this case, running the defragmentation software should help. Generating a large extra file before the test might also help. This can be done by interrupting (break key or close window) the program after the file is written and before reading is finished (but remember to delete the TMP file later). CPU time required to transfer the data over the bus and for subsequent program activity being greater than the disk revolution time. Synchronisation problems or the way in which the controller and driver work, leading to missed disk revolutions. The situation has become more complicated with more modern disk drives where the number of sectors per track is not constant. The technology makes use of the fact that, at a given recording density, more sectors can be written on the longer, outer tracks. Disk rotation speeds have also increased through 4500 RPM, 5400 RPM, 7200 RPM to greater than 10000 RPM. The Quantum Fireball TM2110A 2.1 GB disk on my Pentium Pro rotates at 4500 RPM (75 RPS) and has 104 to 232 sectors per track or 52 to 116 KB. This leads to transfer rates between 3900 and 8700 KB per second. The fastest figure is similar to that obtained with the CORETEST * benchmark. * CORETEST by Core International Forum Library 4 Running DISKNT95 on this disk, which is currently about half full, about 3.6 MB/second is obtained. As indicted below, this appears to be limited by the amount of CPU time used. Running DISKDOS via NT produces a slower result of around 2.5 MB/second but, when booted as a DOS 6.2 system, produced 5 MB/second. In looking for evidence that the originally loaded software would occupy the fastest tracks on the disk, the read only option was used to read a 4 MB Windows help file (\WINDOWS\BOOKS\WSYS.HLP). This file was also read with READFILE * which uses MS Windows I/O bypassing the memory disk cache. Both benchmarks also read a permanent file created by DiskNT95. Only DISKDOS showed that the old file could be read faster, the others, no doubt, being more influenced by excessive CPU time. READFILE DISKNT95 DISKDOS Via NT Via NT Via DOS 6.2 MB/sec MB/sec MB/sec 40 MB TMP 4.4 3.9 5.0 WSYS.HLP 4.4 4.0 6.0 * READFILE by Gilles Vollant Forum Library 4 8. CPU TIME USED With IDE based disk drives (as confirmed by Tom Cattrall), the CPU time involved in data transfer is excessive and SCSI drives should be used for multi-user disk dependent applications. It was not until I obtained a Pentium Pro that I saw anything less than 100% CPU utilisation on Windows based disk benchmarks. A further complication is that this disk benchmark uses general purpose I/O functions to allow DOS and Windows versions to be produced. The Watcom compiler can also include MS Windows I/O procedures (as used in the READFILE benchmark) and this appears to be a little more efficient. In running the benchmark on the Pentium Pro local disk, typically, at 3.6 MB/sec, 90% CPU utilisation is indicated by the performance monitor. This, and other measurements, suggest 100% utilisation at 4 MB/sec and this is the maximum speed that can be obtained (with the NT version). The amount of CPU time used is equivalent to 0.25 CPU seconds per megabyte. Based on this, my 100 MHz Pentium based PC could not be expected to achieve better than 2 MB/sec. When the file is in the memory cache, CPU utilisation is 100% but the speed obtained shows that the CPU time used in transferring data and by the program is relatively low. CPU loading on receiving or sending data via a LAN (with the particular drivers used) is even higher than reading disk. Utilisation and loading with the Pentium Pro as the client then the server are shown. The remote PC is the P100 and data is not read from disk but is in the memory based cache. Reading From MB/Sec CPU ut CP sec/MB Local disk 3.6 90% 0.25 Local memory cache 75.0 100% 0.013 LAN remote cache receive 0.95 68% 0.72 LAN local cache send 0.84 55% 0.65 9. EXAMPLE RESULTS Example results are given in Appendices 1 to 4 Reads from cache were all at 100% CPU utilisation. Local transfers Disk Cache Disk Disk MB/S MB/S CPU ut CP sec/MB PPro CoreTest 8.6 PPro DOS 6.2 5.2 N/A PPro NT DOS 2.4 21.0 75% 0.31 PPro NT 3.6 75.0 90% 0.25 PPro 8* CD read 1.2 40% 0.33 P100 CoreTest 1.8 P100 DOS 6.2 1.6 N/A P100 Win95 DOS 1.3 6.5 100% 0.77 P100 Win 95 1.8 16.7 100% 0.56 P100 4* CD read 0.6 100% 1.67 486 CoreTest 1.8 486 DOS 6.2 1.1 N/A 486 Win95 0.9 6.1 100% 1.11 PPro Client 0.65 0.95 45% 0.69 PPro Server 0.67 0.84 55% 0.82 P100 Client 0.67 0.84 100% 1.49 P100 Server 0.65 0.95 85% 1.31 PPro Server (2) 0.60 60% 1.00 P100 Client 0.32 100% 3.12 486 Client 0.28 100% 3.57 It appears that all the software I have just loops around waiting for data to appear, at least, once it thinks that it is coming. 10. MULTIPLE PROGRAMS ON ONE PC DiskNT95 was run four times on the Pentium Pro with NT 4.0, generating 40 MB files and the program killed before the files were erased. The following batch file was then run to read the files (renamed), first with J1 and J3, then J1 to J3 and finally all four tasks. All multitasking tests were run with Control Panel, System Properties, Performance, with performance boost for foreground tasks set to none. Start DiskNT95 0 4 A J1.tmp Start DiskNT95 0 4 B J2.tmp Start DiskNT95 0 4 C J3.tmp Start DiskNT95 0 4 D J4.tmp As was expected, the disk heads were thrashing about when multiple copies of the programs were running. During all the three tests, CPU utilisation averaged at about 50%. This means that the disk was 100% utilised and was confirmed by the job run times averaging 40 seconds with two tasks, 60 seconds for each of three tasks and 80 seconds when all four were running. With these running times, the total throughput was 2.0 to 2.1 MB/second. It would be nice to be able to have details of the real physical reading rates and block sizes but the NT performance monitor settings do not work (IDE disk problem?). However, some guess work is possible. Average service time for random access on a disk comprises the sum of the following: Average head movement time - the Quantum Fireball TM2110A has a specification of 3 ms minimum, 18 ms maximum, (18+3)/2 or 10.5 ms average. As the files are quite small and not using too many tracks, an average of 4 ms should be a reasonable estimate. Latency - an average delay of half a revolution or 6.67 ms is expected, waiting for the data to reach the read head. Data transfer time at 3900 and 8700 KB per second. As the disk is half full let us assume 6300 KB per second or 5 ms for 32 KB reads. The throughput obtained of 2 MB/second equates to service time of 500 ms per megabyte (1024 KB). At 32 KB, the maximum I/O rate possible would be 64 I/Os per second and there would be 32 I/Os per 1024 KB. At 500 ms, this would give 15.5 ms per I/O or similar to the sum of the above service time estimates. The above pair of calculations are completely dissimilar for block sizes of 64 KB or 16 KB and below but who knows how is really works with all that caching. 11. MULTIPLE CD READS The following BAT file was used to measure CD transfer rates with two files being read at the same time. Start DiskNT95 0 6 N D:\funstuff\videos\weezer.avi Start DiskNT95 0 4 D D:\funstuff\videos\goodtime.avi The average CPU utilisation was 12.5% and each program achieved 0.18 MB/second. As shown above, with one program reading a file, the speed was about 1.2 MB/second and CPU utilisation 40%, giving 0.33 CP seconds per MB. The multitasking test produces a similar loading of 0.35 CP seconds per MB. The eight speed drive is rated at 1.2 MB/second with average access time of 160 ms. Rotation time varies between 1600 RPM and 4240 RPM or 14.2 to 37.5 ms per revolution. At 1.2 MB/S the transfer time is 0.81 ms per KB and total service time 2.7 ms per KB for this test with a total throughput of 0.36 MB/S. This indicates 1.89 ms per KB for head movement time and latency. The latter equates to 120 ms per access if reads were 64 KB or 60 ms per access for 32 KB (which one is it?). 12. CD AND DISK The following BAT file was used to read a 40 MB file from disk (generated by DISKNT95) and a CD file concurrently. Start DiskNT95 0 6 N D:\funstuff\videos\weezer.avi Start DiskNT95 0 8 A J1.tmp This generated 91% CPU utilisation with the CD achieving slightly less than 1.2 MB/second, as when run by itself, and the disk 2.1 MB/second. The CD read uses 40% CPU utilisation leaving 51% for the disk. Running the program with just J1.TMP produced 84.5% CPU utilisation at an average of 3.52 MB/second. This is equivalent loading to 50.4% CPU utilisation at 2.1 MB/second. NT appears to give priority to processor time for reading the CD. This would leave 60% of the elapsed time for the disk reading program. So a reading speed of 0.6 x 3.52 or 2.1 MB/second might be expected (as it was). The same disk file was read a few times via READFILE (Library 4) concurrently with the CD with a BAT file containing: Start DiskNT95 0 6 N D:\funstuff\videos\weezer.avi readfile J1.tmp readfile J1.tmp readfile J1.tmp readfile J1.tmp This time the CD speed obtained was 0.62 MB/second, NT giving more preference to reading disk with transfer rate reduced from 4.3 to 3.5 MB/second. CPU utilisation was 100%. *********************************************************************** APPENDIX 1 PENTIUM PRO Dell XPS Pro, 200 MHz P6, 32 MB memory, 256K cache, Quantum Fireball 2.1 GB disk with 128K cache, 8 speed CD ROM ATAPI interface, Windows NT 4.0 Workstation. CORETEST (Library 4) 8772 KB/sec 6 Tasks run with the following BAT file DiskNT95 10 20 N DiskNT95 40 6 N DiskDOS 10 20 D DiskDOS 40 6 D DiskNT95 0 4 N D:\funstuff\videos\weezer.avi DiskDOS 0 4 D D:\funstuff\videos\weezer.avi A1.1 NT Version Small File Data eventually from memory cache then 100% CPU utilisation ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J143308N Wed May 21 14:33:08 1997 Data File J143308N.tmp 10.0 Mbytes Files written 10485760 bytes (data*10) 1.62 seconds for writing file at 6.17 MB/s 14:33:10 0.40 seconds for read pass 1 at 25.00 MB/s 14:33:10 0.13 seconds for read pass 2 at 76.92 MB/s 14:33:10 0.13 seconds for read pass 3 at 76.92 MB/s 14:33:11 0.14 seconds for read pass 4 at 71.43 MB/s 14:33:11 0.21 seconds for read pass 5 at 47.62 MB/s 14:33:11 0.14 seconds for read pass 6 at 71.43 MB/s 14:33:11 0.13 seconds for read pass 7 at 76.92 MB/s 14:33:11 0.13 seconds for read pass 8 at 76.92 MB/s 14:33:11 0.14 seconds for read pass 9 at 71.43 MB/s 14:33:11 0.13 seconds for read pass 10 at 76.92 MB/s 14:33:12 0.13 seconds for read pass 11 at 76.92 MB/s 14:33:12 0.14 seconds for read pass 12 at 71.43 MB/s 14:33:12 0.14 seconds for read pass 13 at 71.43 MB/s 14:33:12 0.13 seconds for read pass 14 at 76.92 MB/s 14:33:12 0.13 seconds for read pass 15 at 76.92 MB/s 14:33:12 0.14 seconds for read pass 16 at 71.43 MB/s 14:33:12 0.13 seconds for read pass 17 at 76.92 MB/s 14:33:12 0.13 seconds for read pass 18 at 76.92 MB/s 14:33:13 0.14 seconds for read pass 19 at 71.43 MB/s 14:33:13 0.13 seconds for read pass 20 at 76.92 MB/s 14:33:13 A1.2 NT Version Large File Reading disk 90% CPU utilisation ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J143313N Wed May 21 14:33:13 1997 Data File J143313N.tmp 40.0 Mbytes Files written 41943040 bytes (data*40) 8.31 seconds for writing file at 4.81 MB/s 14:33:21 14.14 seconds for read pass 1 at 2.83 MB/s 14:33:36 10.32 seconds for read pass 2 at 3.88 MB/s 14:33:47 12.69 seconds for read pass 3 at 3.15 MB/s 14:33:59 12.08 seconds for read pass 4 at 3.31 MB/s 14:34:12 10.08 seconds for read pass 5 at 3.97 MB/s 14:34:22 10.34 seconds for read pass 6 at 3.87 MB/s 14:34:32 A1.3 DOS Version via NT small file Data eventually from memory cache 100% CPU utilisation ############################################## Disk test diskut in C++ DOS Version 1 Job J143440D Wed May 21 14:34:40 1997 Data File J143440D.tmp 10.0 Mbytes Files written 10485760 bytes (data*10) 2.03 seconds for writing file at 4.93 MB/s 14:34:42 0.71 seconds for read pass 1 at 14.08 MB/s 14:34:43 0.55 seconds for read pass 2 at 18.18 MB/s 14:34:44 0.44 seconds for read pass 3 at 22.73 MB/s 14:34:44 0.50 seconds for read pass 4 at 20.00 MB/s 14:34:45 0.44 seconds for read pass 5 at 22.73 MB/s 14:34:45 0.49 seconds for read pass 6 at 20.41 MB/s 14:34:46 0.44 seconds for read pass 7 at 22.73 MB/s 14:34:46 0.49 seconds for read pass 8 at 20.41 MB/s 14:34:46 0.44 seconds for read pass 9 at 22.73 MB/s 14:34:47 0.50 seconds for read pass 10 at 20.00 MB/s 14:34:47 0.49 seconds for read pass 11 at 20.41 MB/s 14:34:48 0.44 seconds for read pass 12 at 22.73 MB/s 14:34:48 0.50 seconds for read pass 13 at 20.00 MB/s 14:34:49 0.44 seconds for read pass 14 at 22.73 MB/s 14:34:49 0.44 seconds for read pass 15 at 22.73 MB/s 14:34:50 0.49 seconds for read pass 16 at 20.41 MB/s 14:34:50 0.49 seconds for read pass 17 at 20.41 MB/s 14:34:51 0.44 seconds for read pass 18 at 22.73 MB/s 14:34:51 0.50 seconds for read pass 19 at 20.00 MB/s 14:34:52 0.44 seconds for read pass 20 at 22.73 MB/s 14:34:52 A1.4 DOS Version via NT large file Reading disk 75% CPU utilisation ############################################## Disk test diskut in C++ DOS Version 1 Job J143453D Wed May 21 14:34:53 1997 Data File J143453D.tmp 40.0 Mbytes Files written 41943040 bytes (data*40) 9.78 seconds for writing file at 4.09 MB/s 14:35:03 19.28 seconds for read pass 1 at 2.07 MB/s 14:35:22 15.92 seconds for read pass 2 at 2.51 MB/s 14:35:38 15.44 seconds for read pass 3 at 2.59 MB/s 14:35:53 17.14 seconds for read pass 4 at 2.33 MB/s 14:36:10 16.03 seconds for read pass 5 at 2.50 MB/s 14:36:26 16.10 seconds for read pass 6 at 2.48 MB/s 14:36:43 A1.5 NT version reading CD Reading 8 speed CD drive 40% CPU utilisation ############################################## Disk test diskut in C++ Win95/NT Version 1 Reading file D:\funstuff\videos\weezer.avi Job J143646N Wed May 21 14:36:46 1997 26.07 seconds 30.1MB pass 1 at 1.15 MB/s 14:37:13 27.54 seconds 30.1MB pass 2 at 1.09 MB/s 14:37:40 25.96 seconds 30.1MB pass 3 at 1.16 MB/s 14:38:06 25.86 seconds 30.1MB pass 4 at 1.16 MB/s 14:38:32 A1.6 DOS version via NT reading CD Reading 8 speed CD drive 40% CPU utilisation ############################################## Disk test diskut in C++ DOS Version 1 Reading file D:\funstuff\videos\weezer.avi Job J143837D Wed May 21 14:38:37 1997 25.71 seconds 30.1MB pass 1 at 1.17 MB/s 14:39:02 24.93 seconds 30.1MB pass 2 at 1.21 MB/s 14:39:27 26.20 seconds 30.1MB pass 3 at 1.15 MB/s 14:39:53 26.15 seconds 30.1MB pass 4 at 1.15 MB/s 14:40:20 A1.7 DOS version booted with DOS 6.2, no SmartDrive, small file Command line used DiskDOS 8 8 - not as fast as could be ############################################## Disk test diskut in C++ DOS Version 1 Job J150208Z Wed May 21 15:02:08 1997 Data File J150208Z.tmp 8.0 Mbytes Files written 8388608 bytes (data*8) 1.97 seconds for writing file at 4.06 MB/s 15:02:10 1.98 seconds for read pass 1 at 4.04 MB/s 15:02:12 1.87 seconds for read pass 2 at 4.28 MB/s 15:02:13 1.92 seconds for read pass 3 at 4.17 MB/s 15:02:15 1.87 seconds for read pass 4 at 4.28 MB/s 15:02:17 1.87 seconds for read pass 5 at 4.28 MB/s 15:02:19 1.92 seconds for read pass 6 at 4.17 MB/s 15:02:21 1.87 seconds for read pass 7 at 4.28 MB/s 15:02:23 1.86 seconds for read pass 8 at 4.30 MB/s 15:02:25 DiskDos 30 6 - 30 MB file written, CTRL/BREAK pressed to stop test without deleting file A1.8 DOS version booted with DOS 6.2, no SmartDrive, small file Repeat DiskDOS 8 8 ############################################## Disk test diskut in C++ DOS Version 1 Job J150403Z Wed May 21 15:04:03 1997 Data File J150403Z.tmp 8.0 Mbytes Files written 8388608 bytes (data*8) 1.64 seconds for writing file at 4.88 MB/s 15:04:05 1.60 seconds for read pass 1 at 5.00 MB/s 15:04:06 1.53 seconds for read pass 2 at 5.23 MB/s 15:04:08 1.54 seconds for read pass 3 at 5.19 MB/s 15:04:10 1.54 seconds for read pass 4 at 5.19 MB/s 15:04:11 1.54 seconds for read pass 5 at 5.19 MB/s 15:04:13 1.54 seconds for read pass 6 at 5.19 MB/s 15:04:14 1.53 seconds for read pass 7 at 5.23 MB/s 15:04:16 1.54 seconds for read pass 8 at 5.19 MB/s 15:04:17 A1.9 DOS version booted with DOS 6.2, no SmartDrive, large file Command used DiskDOS 40 6 ############################################## Disk test diskut in C++ DOS Version 1 Job J150444Z Wed May 21 15:04:44 1997 Data File J150444Z.tmp 40.0 Mbytes Files written 41943040 bytes (data*40) 8.13 seconds for writing file at 4.92 MB/s 15:04:52 7.86 seconds for read pass 1 at 5.09 MB/s 15:05:00 7.74 seconds for read pass 2 at 5.17 MB/s 15:05:08 7.69 seconds for read pass 3 at 5.20 MB/s 15:05:16 7.75 seconds for read pass 4 at 5.16 MB/s 15:05:24 7.69 seconds for read pass 5 at 5.20 MB/s 15:05:31 7.74 seconds for read pass 6 at 5.17 MB/s 15:05:39 ************************************************************************* APPENDIX 2 PENTIUM 100 MHz Escom 100 MHz Pentium, 16 MB memory, 256K cache, Seagate ST5850A 850 MB 256K cache, 4 speed CD ROM, Windows 95. CORETEST 1833 KB/sec All tests gave 100% CPU utilisation. A2.1 Win95/NT Version Large File Run by clicking on DiskNT95.EXE icon, manual input With Windows 95, the memory based disk cache does not appear to be completely overwritten when the file size is greater than physical RAM capacity. The lower speeds are probably for real disk transfers. ############################################## Disk test diskut in C++ Win95/NT Version 1 Server p100 Client p100 Job J120932Z Wed May 21 12:09:32 1997 Data File J120932Z.tmp 20.0 Mbytes Files written 20971520 bytes (data*20) 12.32 seconds for writing file at 1.62 MB/s 12:10:07 10.11 seconds for read pass 1 at 1.98 MB/s 12:10:17 11.97 seconds for read pass 2 at 1.67 MB/s 12:10:29 9.27 seconds for read pass 3 at 2.16 MB/s 12:10:39 8.83 seconds for read pass 4 at 2.27 MB/s 12:10:48 8.71 seconds for read pass 5 at 2.30 MB/s 12:10:56 11.44 seconds for read pass 6 at 1.75 MB/s 12:11:08 A2.2 Win95/NT version Small File Run by clicking on DiskNT95.EXE icon, manual input - Transfers eventually from cache. ############################################## Disk test diskut in C++ Win95/NT Version 1 Server p100 Client p100 Job J120852Z Wed May 21 12:08:52 1997 Data File J120852Z.tmp 6.0 Mbytes Files written 6291456 bytes (data*6) 3.40 seconds for writing file at 1.76 MB/s 12:09:10 0.49 seconds for read pass 1 at 12.24 MB/s 12:09:10 1.52 seconds for read pass 2 at 3.95 MB/s 12:09:12 0.40 seconds for read pass 3 at 15.00 MB/s 12:09:12 0.36 seconds for read pass 4 at 16.67 MB/s 12:09:12 0.35 seconds for read pass 5 at 17.14 MB/s 12:09:13 0.38 seconds for read pass 6 at 15.79 MB/s 12:09:13 0.35 seconds for read pass 7 at 17.14 MB/s 12:09:13 0.37 seconds for read pass 8 at 16.22 MB/s 12:09:14 0.36 seconds for read pass 9 at 16.67 MB/s 12:09:14 0.35 seconds for read pass 10 at 17.14 MB/s 12:09:15 0.38 seconds for read pass 11 at 15.79 MB/s 12:09:15 0.35 seconds for read pass 12 at 17.14 MB/s 12:09:15 0.36 seconds for read pass 13 at 16.67 MB/s 12:09:16 0.37 seconds for read pass 14 at 16.22 MB/s 12:09:16 0.36 seconds for read pass 15 at 16.67 MB/s 12:09:16 0.37 seconds for read pass 16 at 16.22 MB/s 12:09:17 0.36 seconds for read pass 17 at 16.67 MB/s 12:09:17 0.36 seconds for read pass 18 at 16.67 MB/s 12:09:17 0.36 seconds for read pass 19 at 16.67 MB/s 12:09:18 0.36 seconds for read pass 20 at 16.67 MB/s 12:09:18 A2.3 DOS Version via Windows 95 Large File Run by clicking on DiskDOS.EXE icon, manual input ############################################## Disk test diskut in C++ DOS Version 1 Server p100 Client p100 Job J121822Z Wed May 21 12:18:22 1997 Data File J121822Z.tmp 20.0 Mbytes Files written 20971520 bytes (data*20) 13.19 seconds for writing file at 1.52 MB/s 12:19:11 16.75 seconds for read pass 1 at 1.19 MB/s 12:19:28 15.38 seconds for read pass 2 at 1.30 MB/s 12:19:43 15.60 seconds for read pass 3 at 1.28 MB/s 12:19:59 15.43 seconds for read pass 4 at 1.30 MB/s 12:20:14 15.43 seconds for read pass 5 at 1.30 MB/s 12:20:30 15.77 seconds for read pass 6 at 1.27 MB/s 12:20:45 A2.4 DOS Version via Windows 95 Small File Run by clicking on DiskDOS.EXE icon, manual input - Transfers eventually from cache. ############################################## Disk test diskut in C++ DOS Version 1 Server p100 Client p100 Job J121711Z Wed May 21 12:17:11 1997 Data File J121711Z.tmp 6.0 Mbytes Files written 6291456 bytes (data*6) 3.13 seconds for writing file at 1.92 MB/s 12:17:26 5.93 seconds for read pass 1 at 1.01 MB/s 12:17:32 4.72 seconds for read pass 2 at 1.27 MB/s 12:17:37 4.73 seconds for read pass 3 at 1.27 MB/s 12:17:42 4.78 seconds for read pass 4 at 1.26 MB/s 12:17:46 3.68 seconds for read pass 5 at 1.63 MB/s 12:17:50 0.93 seconds for read pass 6 at 6.45 MB/s 12:17:51 0.88 seconds for read pass 7 at 6.82 MB/s 12:17:52 0.93 seconds for read pass 8 at 6.45 MB/s 12:17:53 0.94 seconds for read pass 9 at 6.38 MB/s 12:17:54 0.93 seconds for read pass 10 at 6.45 MB/s 12:17:55 0.88 seconds for read pass 11 at 6.82 MB/s 12:17:56 0.93 seconds for read pass 12 at 6.45 MB/s 12:17:57 0.94 seconds for read pass 13 at 6.38 MB/s 12:17:58 0.93 seconds for read pass 14 at 6.45 MB/s 12:17:58 0.88 seconds for read pass 15 at 6.82 MB/s 12:17:59 0.93 seconds for read pass 16 at 6.45 MB/s 12:18:00 0.94 seconds for read pass 17 at 6.38 MB/s 12:18:01 0.93 seconds for read pass 18 at 6.45 MB/s 12:18:02 0.88 seconds for read pass 19 at 6.82 MB/s 12:18:03 0.93 seconds for read pass 20 at 6.45 MB/s 12:18:04 Run with BAT file containing disknt95 0 2 C D:\funstuff\videos\weezer.avi diskdos 0 2 C D:\funstuff\videos\weezer.avi A2.5 Win95/NT Version CD Disk CD 100% CPU utilisation, 4 speed CD Drive ############################################## Disk test diskut in C++ Win95/NT Version 1 Reading file D:\funstuff\videos\weezer.avi Job J125954C Wed May 21 12:59:54 1997 53.28 seconds 30.1MB pass 1 at 0.56 MB/s 13:00:47 51.53 seconds 30.1MB pass 2 at 0.58 MB/s 13:01:39 A2.6 DOS Version via Windows 95 CD Disk CD 100% CPU utilisation, 4 speed CD Drive ############################################## Disk test diskut in C++ DOS Version 1 Reading file D:\funstuff\videos\weezer.avi Job J130139C Wed May 21 13:01:39 1997 51.52 seconds 30.1MB pass 1 at 0.58 MB/s 13:02:31 51.36 seconds 30.1MB pass 2 at 0.59 MB/s 13:03:22 a2.7 DOS Version Booted with DOS 6.2 Large File DOS 6.2 No SmartDrive Run from command prompt DiskDOS 20 6 ############################################## Disk test diskut in C++ DOS Version 1 Job J131652Z Wed May 21 13:16:52 1997 Data File J131652Z.tmp 20.0 Mbytes Files written 20971520 bytes (data*20) 11.70 seconds for writing file at 1.71 MB/s 13:17:04 12.31 seconds for read pass 1 at 1.62 MB/s 13:17:16 12.14 seconds for read pass 2 at 1.65 MB/s 13:17:28 12.13 seconds for read pass 3 at 1.65 MB/s 13:17:40 12.20 seconds for read pass 4 at 1.64 MB/s 13:17:53 12.19 seconds for read pass 5 at 1.64 MB/s 13:18:05 12.19 seconds for read pass 6 at 1.64 MB/s 13:18:17 ************************************************************************** APPENDIX 3 80486DX/2 RESULTS Escom 80486DX2 66 MHz, 20 MB RAM, 128K cache, Seagate ST 3250A disk, windows 95 CORETEST 1822 KB/sec All tests gave 100% CPU utilisation. A3.1 Wi95/NT Version Small File Command DiskNT95 8 10 Data eventually from memory cache. ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J112053Z Thu May 22 11:20:53 1997 Data File J112053Z.tmp 8.0 Mbytes Files written 8388608 bytes (data*8) 1.90 seconds for writing file at 4.21 MB/s 11:20:55 2.16 seconds for read pass 1 at 3.70 MB/s 11:20:57 2.15 seconds for read pass 2 at 3.72 MB/s 11:20:59 2.10 seconds for read pass 3 at 3.81 MB/s 11:21:01 2.11 seconds for read pass 4 at 3.79 MB/s 11:21:04 1.64 seconds for read pass 5 at 4.88 MB/s 11:21:05 1.30 seconds for read pass 6 at 6.15 MB/s 11:21:07 1.31 seconds for read pass 7 at 6.11 MB/s 11:21:08 1.31 seconds for read pass 8 at 6.11 MB/s 11:21:09 1.30 seconds for read pass 9 at 6.15 MB/s 11:21:10 1.31 seconds for read pass 10 at 6.11 MB/s 11:21:12 A3.2 Win95/NT Version Large File Command DiskNT95 25 6 With Windows 95, the memory based disk cache does not appear to be completely overwritten when the file size is greater than physical RAM capacity. The lower speeds are probably for real disk transfers. ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J112126Z Thu May 22 11:21:26 1997 Data File J112126Z.tmp 25.0 Mbytes Files written 26214400 bytes (data*25) 32.93 seconds for writing file at 0.76 MB/s 11:21:59 27.59 seconds for read pass 1 at 0.91 MB/s 11:22:27 24.56 seconds for read pass 2 at 1.02 MB/s 11:22:51 18.66 seconds for read pass 3 at 1.34 MB/s 11:23:10 16.83 seconds for read pass 4 at 1.49 MB/s 11:23:27 27.46 seconds for read pass 5 at 0.91 MB/s 11:23:54 15.34 seconds for read pass 6 at 1.63 MB/s 11:24:10 A3.3 DOS Version Booted with DOS 6.2 Large File DOS 6.2 No SmartDrive Run from command prompt DiskDOS 20 6 ############################################## Disk test diskut in C++ DOS Version 1 Job J083815Z Thu May 22 08:38:15 1997 Data File J083815Z.tmp 20.0 Mbytes Files written 20971520 bytes (data*20) 50.69 seconds for writing file at 0.39 MB/s 08:39:06 18.62 seconds for read pass 1 at 1.07 MB/s 08:39:25 18.62 seconds for read pass 2 at 1.07 MB/s 08:39:43 18.68 seconds for read pass 3 at 1.07 MB/s 08:40:02 18.62 seconds for read pass 4 at 1.07 MB/s 08:40:20 18.62 seconds for read pass 5 at 1.07 MB/s 08:40:39 18.62 seconds for read pass 6 at 1.07 MB/s 08:40:58 ************************************************************************ APPENDIX 4 COMMUNICATION VIA 10 Mbits/sec LAN A4.1 PPRO Client P100 server Large File Run with batch file - data file on P100 compressed drive E: DiskNT95 40 6 N E:\TEMP\ CP Util CP Util Packets/sec PPRO P100 Writing 20% 75% 350 received P100 Reading 45% 85% 490 sent by P100 ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J173633N Wed May 21 17:36:33 1997 Data File E:\TEMP\J173633N.tmp 40.0 Mbytes Files written 41943040 bytes (data*40) 123.31 seconds for writing file at 0.32 MB/s 17:38:36 62.07 seconds for read pass 1 at 0.64 MB/s 17:39:38 61.77 seconds for read pass 2 at 0.65 MB/s 17:40:40 61.88 seconds for read pass 3 at 0.65 MB/s 17:41:42 61.59 seconds for read pass 4 at 0.65 MB/s 17:42:43 61.46 seconds for read pass 5 at 0.65 MB/s 17:43:45 61.43 seconds for read pass 6 at 0.65 MB/s 17:44:46 A4.2 PPRO Client P100 server Small File Run with batch file - data file on P100 compressed drive E: DiskNT95 8 10 N E:\TEMP\ Note: NT 4.0 does not appear to cache LAN data locally. The following utilisation is when reading data cached on the P100. CP Util CP Util Packets/sec PPRO P100 Reading 65% 75% 705 sent by P100 ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J175341N Wed May 21 17:53:41 1997 Data File E:\TEMP\J175341N.tmp 8.0 Mbytes Files written 8388608 bytes (data*8) 19.65 seconds for writing file at 0.41 MB/s 17:54:00 11.16 seconds for read pass 1 at 0.72 MB/s 17:54:11 8.50 seconds for read pass 2 at 0.94 MB/s 17:54:20 8.38 seconds for read pass 3 at 0.95 MB/s 17:54:28 8.51 seconds for read pass 4 at 0.94 MB/s 17:54:37 8.40 seconds for read pass 5 at 0.95 MB/s 17:54:45 8.47 seconds for read pass 6 at 0.94 MB/s 17:54:54 8.53 seconds for read pass 7 at 0.94 MB/s 17:55:02 8.38 seconds for read pass 8 at 0.95 MB/s 17:55:11 8.52 seconds for read pass 9 at 0.94 MB/s 17:55:19 8.47 seconds for read pass 10 at 0.94 MB/s 17:55:28 A4.3 P100 Client PPRO Server Large File Run with batch file: disknt95 40 6 L F:\Test\ Data from PPRO disk CP Util CP Util PPRO P100 Writing 50% 100% Reading 55% 100% ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J120415L Thu May 22 12:04:15 1997 Data File F:\Test\J120415L.tmp 40.0 Mbytes Files written 41943040 bytes (data*40) 63.03 seconds for writing file at 0.63 MB/s 12:05:18 64.84 seconds for read pass 1 at 0.62 MB/s 12:06:23 62.00 seconds for read pass 2 at 0.65 MB/s 12:07:25 58.38 seconds for read pass 3 at 0.69 MB/s 12:08:24 60.67 seconds for read pass 4 at 0.66 MB/s 12:09:24 58.63 seconds for read pass 5 at 0.68 MB/s 12:10:23 58.50 seconds for read pass 6 at 0.68 MB/s 12:11:21 A4.4 P100 Client PPRO Server Small File Run with batch file: disknt95 16 10 S F:\Test\ Data from PPRO memory disk cache CP Util CP Util PPRO P100 Reading 55% 100% ############################################## Disk test diskut in C++ Win95/NT Version 1 Job J121127S Thu May 22 12:11:27 1997 Data File F:\Test\J121127S.tmp 16.0 Mbytes Files written 16777216 bytes (data*16) 23.13 seconds for writing file at 0.69 MB/s 12:11:50 18.73 seconds for read pass 1 at 0.85 MB/s 12:12:08 19.35 seconds for read pass 2 at 0.83 MB/s 12:12:28 18.57 seconds for read pass 3 at 0.86 MB/s 12:12:46 18.55 seconds for read pass 4 at 0.86 MB/s 12:13:05 18.94 seconds for read pass 5 at 0.84 MB/s 12:13:24 19.87 seconds for read pass 6 at 0.81 MB/s 12:13:44 19.51 seconds for read pass 7 at 0.82 MB/s 12:14:03 18.94 seconds for read pass 8 at 0.84 MB/s 12:14:22 19.20 seconds for read pass 9 at 0.83 MB/s 12:14:41 19.02 seconds for read pass 10 at 0.84 MB/s 12:15:00 A4.5 P100 and 486 Clients PPRO Server Large Files P100 bat file - DiskNT95 40 6 L F:\Test\ 486 bat file - DiskNT95 40 6 X G:\Test\ The P100 test was started when the 486 had finished writing its file. Pass end times from the logs are merged to show concurrent activity. Disk head movement, no doubt, reduced total MB/second throughput. CPU utilisation on both 486 and P100 was 100%. Recorded on 486 Recorded on P100 PPRO CPU ut 486 write 0.69 MB/s 12:43:16 50% 486 read 0.42 MB/s 12:44:52 75% P100 write 0.46 MB/s 12:45:42 75% Both reading 0.32 MB/s 12:46:56 60% 0.37 MB/s 12:47:32 60% 0.28 MB/s 12:49:18 0.32 MB/s 12:49:35 0.31 MB/s 12:51:29 0.34 MB/s 12:51:31 0.24 MB/s 12:54:19 0.26 MB/s 12:54:05 0.37 MB/s 12:55:53 0.31 MB/s 12:56:26 0.41 MB/s 12:57:31