TESTIO.EXE - Testing for Basic Network Reliability

Last reviewed: 06/29/2009
Article ID: R10054

The information in this article applies to:

SUMMARY

TESTIO.EXE is a simple program designed to test for basic network reliability (i.e., reading and writing across the network) as well as provide a basic idea of read/write speed.

Note:  TESTIO.EXE is a DOS-based program, and therefore cannot be run under a 64-bit operating system. Although it can be installed on a 64-bit server, it can only be run from a non-64-bit workstation.

MORE INFORMATION

Network Reliability

TESTIO.EXE was not designed to be a comprehensive diagnostic test, but rather, the purpose of the program is to move as much information as possible over the network and to compare the data read from the file server to what was written to the file server.  If a discrepancy occurs, then there is a read/write problem on the network. It is possible that the test needs to be repeated under different conditions with a longer time frame and heavier work load. TESTIO is a very basic diagnostic program. Keep in mind that if TESTIO does not report an error, that does not mean that there is not a problem!  

The TESTIO program opens 15 temporary files in the current working directory on the server. Each temporary file ranges in size from 410k to 550k for a total of approximately 7.2MB on the server's hard drive. TESTIO will read and write 1000 records in 50 record blocks to each file and then start over. This process will be repeated infinitely by multiple workstations until the program is stopped. The TESTIO program will delete the temporary files when finished. The names of the temporary files are "TESTA", "TESTB", ... "TESTO" respectively.

Since many network problems are intermittent and only occur under heavy workload, TESTIO should be run from as many workstations as possible at the same time and for as long as possible. It is possible that it could take up to 10 hours or longer to detect a problem using this simple program.

Network Speed

In addition to testing for basic network reliability, TESTIO will also report the speed in which the data is written to and read from the network. The information will be displayed at the bottom of the screen and will be listed in the format as follows:

Avg Meg/Sec Write:        XXX.XXX                   Avg Meg/Sec Read:        XXX.XXX

The first number indicates the number of megabytes of data written per second for the last 30 seconds and the second number indicates the number of megabytes of data read per second for the last 30 seconds. The larger the number the better the performance (e.g., 2.3 is faster than 1.4).

In addition to displaying the 30 second averages, TESTIO will display the total number of megabytes of data written per second and the total number of megabytes of data read per second after exiting TESTIO.  The information will be displayed at the bottom of the screen and will be listed in the following format:

Tot Avg Meg/Sec Write:        XXX.XXX               Tot Avg Meg/Sec Read:        XXX.XXX

A more accurate timing of the network speed occurs when more than one workstation is running the same copy of TESTIO.EXE at the same time.  When more than one workstation is running the program, client side caching issues should be eliminated, thereby presenting a more realistic network performance number. Furthermore, because opportunistic locking cannot be disabled on Windows 2008 Server, Vista or Windows 7, it is necessary to run on more than one workstation at a time in order to have accurate read and write speeds. Keep in mind that the last workstation that stops the TESTIO.EXE process may have faster read/write speeds because disk caching is enabled.

LOCATION OF TESTIO.EXE

The URL is:

RUNNING TESTIO.EXE

Use the following procedures to run TESTIO:

  1. Create a temporary directory on the network server.
  2. Note: Make sure the temporary directory is NOT included in your nightly backup procedure.
    Note: Make sure the temporary directory is located on the same drive as the server where Tabs3 is installed.

  3. Download the TESTIO.EXE file into the temporary directory on the server.

  4. Use the following procedure to execute the TESTIO.EXE program from each workstation you want to test:

    Note:  A drive letter must be mapped to the server drive (if one has not already been mapped).
    1. From the Windows Desktop, select Start | Run.
    2. In the Open dialog box, type command.
    3. Click OK to open a Command Prompt (i.e., DOS) window.
    4. Type <drive>: where <drive> equals the drive letter on which the directory was created in step 1 above, and press Enter. For example, if the directory in step 1 was created on the S: drive, type S: and press Enter.
    5. Type CD\<dir> where <dir> equals the temporary directory created in step 1 above, and press Enter. For example, if the directory created in step 1 is called TEST, type CD\TEST and press Enter.
    6. Enter TESTIO.EXE and press Enter.

Important:  Do NOT launch TESTIO directly from the Start | Run feature, because there is no way to reliably set the current working directory. In order for TESTIO to run correctly, the current working directory must be on the server in the same directory as the TESTIO.EXE file.

Note:  TESTIO retrieves the computer name and writes it to the TESTIO.LOG file. On Windows 95/98/Me operating systems, TESTIO cannot retrieve the computer name. If TESTIO is unable to retrieve the computer name, you will be prompted for it. In the event you do not want to be prompted for a computer name (e.g., running in a batch process), an environment variable named COMPUTERNAME can be set which defines a computer name.

Command Line Options

Several command line options are available with this utility. Typing TESTIO /? will display the following help:

Usage:  TESTIO [Records] [Options]

      Example Use:  TESTIO 2000 /N /i80
                       |     |   |   | 
Program ---------------      |   |   | 
                             |   |   | 
Records per Iteration -------    |   | 
                                 |   | 
No Data Testing -----------------    | 
                                     | 
Records per Block -------------------  

The example above specifies 2000 records per iteration
(the default is 1000), do not test the read buffer, and
read and write 80 records per timing (the default is 50).

TESTIO Output

The following is an example of what the screen might look like after running and stopping TESTIO.  If there are no problems with reading and writing across the network, the "BAD I/O" information will not be shown. 

This program tests I/O. Press ESC to halt the program.
Reads & Writes per Block:   50     Records per Iteration: 1000

FILE      WRITE      READ        ITERATIONS    

 1         1000      1000              4271
 2         1000      1000              4271
 3         1000       500              4271
 4         1000       500              4273
 5         1000       500              4271
 6         1000      1000              4272        BAD I/O   1000
 7         1000      1000              4273
 8         1000      1000              4270
 9         1000      1000              4272
10         1000       500              4272
11         1000       500              4271        BAD I/O   1000
12         1000       500              4270
13         1000      1000              4271
14         1000      1000              4271
15         1000       500              4270

    Avg Meg/Sec Write:    2.882        Avg Meg/Sec Read:   3.175
Tot Avg Meg/Sec Write:    2.857    Tot Avg Meg/Sec Read:   4.796
ALL TEST FILES HAVE BEEN DELETED.  INFORMATION HAS BEEN WRITTEN TO TESTIO.LOG.

TESTIO Log File

When the TESTIO program is terminated, a log file (TESTIO.LOG) will be created. The TESTIO.LOG file is appended to each time TESTIO is terminated on a workstation. The following is an example of a TESTIO.LOG file:

Computer:  BRANDON
Path:  F:\APPS\STI\
Start Date:  04-09-2009
Start Time:  10:10:37
End Date:  04-09-2009
End Time:  10:10:59
Total Avg Meg/Sec Write:    2.857
Total Avg Meg/Sec Read:   4.796
Iterations:  4271     
==================================================

Error Code:  75
Error Line:  790
Computer:  LAB1
Path:  c:\testio
Start Date:  04-09-2009
Start Time:  10:10:37
End Date:  04-09-2009
End Time:  10:10:59
Total Avg Meg/Sec Write:    3.176
Total Avg Meg/Sec Read:   33.082
Iterations:  4     

Important:  If I/O errors are encountered, TESTIO.EXE may be unable to write to the TESTIO.LOG file. Therefore, it is necessary to check the results of the TESTIO.EXE program on each workstation rather than relying solely on the TESTIO.LOG.

IF I/O ERRORS ARE ENCOUNTERED

If an I/O error is encountered, a column called "BADIO" will be displayed tracking the number of errors in each file. This indicates that the existing hardware and network software is having trouble reading and writing to the network server.

Depending on the type of network problem, it is entirely possible that the program will abort with a fatal error message or even lock up before the TESTIO program has a chance to show the "BAD I/O" indicator. This type of behavior supports the likelihood that there is a problem with the network hardware or software.

Other Fatal Errors

A fatal error may occur while running the program due to path issues or other unexpected hardware issues. For example, TESTIO may abort with an Error 71 (Windows 9x O/S) or Error 75 (Windows NT O/S) in line 2070 or 3070 if TESTIO cannot make a path-to-file connection. This error can be simulated by simply running TESTIO.EXE and unplugging the network cable. 

As another example, an error may occur if the server is rebooted while TESTIO is being run from a workstation off the server drive. Other fatal errors may occur if a nightly backup routine is run at the same time as TESTIO.

If a fatal error is encountered while TESTIO is running, an "Error Code" and "Error Line" may be shown in the TESTIO.LOG file as shown in the above example.

RESOLUTION

To determine where the actual problem lies, additional testing of the network hardware and software would be required by your computer technician.

If TESTIO does report a problem, it is helpful to know if the problem occurs on only one workstation or not. If the problem only occurs on one workstation, you should start troubleshooting at the workstation. If multiple workstations receive errors, you might wish to start at the file server and work backwards through the network. 

While all workstations should have the latest redirector software, it is more likely that the culprit of errors that TESTIO can detect are due to defective NIC drivers, NIC hardware, hubs, switches, cabling and so on. Updating to the latest redirector is easy to do, but do not count on that to solve network packet transfer problems.

VDM*.TMP Files

If running under Windows NT, you may notice VDM*.TMP files in the directory where TESTIO was run. These files are created by the operating system and are therefore not deleted by TESTIO. 

USING TESTIO WITH CLIENT SERVER SOFTWARE INSTALLATIONS

The majority of functions performed in the Client Server Version (CSV) of the Tabs3 and PracticeMaster software bypass the redirector components of network software. Although the TESTIO.EXE utility program uses redirector components of the network software, it is still a valid troubleshooting tool when using CSV versions of the software because it can detect various other network communication problems. As previously stated in this article, keep in mind that if TESTIO does not report an error, that does not mean that there is not a problem!

References


© 1999-2010 Software Technology, Inc.   All rights reserved. Terms of Use
The maker of Tabs3 and PracticeMaster
Tabs3, PracticeMaster, and the “pinwheel” symbol (The "Pinwheel" symbol is a Registered Trademark of Software Technology, Inc.) are registered trademarks of Software Technology, Inc.
e-Mail Suggestions for the Knowledge Base to: kb@Tabs3.com
Technical Support via e-mail is not available.
Knowledge Base:   http://support.Tabs3.com
Web Site:   http://www.Tabs3.com