Base de connaissances

Windows Server: Using the NTttcp Tool to Troubleshoot Network Performance

This article will provide information on using the NTttcp tool to troubleshoot network-related performance issues in Windows Server

When troubleshooting network performance issues, it can be difficult to isolate network performance from that of other system components. When testing performance by copying a file from one system to another, for example, the memory and disk subsystems on both machines are being utilized - to read from one machine and write to the other - as well as the network. Fortunately, there is a tool available from Microsoft specifically designed to test only the network: the NTttcp tool.

The latest version of NTttcp (v5.28 as of this writing) is available for download here, but it is missing documentation. Some very basic information is present on the download page, but the tool has no GUI and has numerous command-line switches. To obtain more detailed documentation, it is necessary to download the previous version, which includes documentation in .docx format.

Usage Example: This command runs the tool as a receiver in asynchronous mode for 30 seconds, using four threads dynamically allocated across all processor cores, two outstanding I/O buffers, and a 64K buffer size:

ntttcp.exe -r -m 4,*,192.168.242.5 -l 64k -a 2 -t 30

The corresponding command on the sender is as follows:

ntttcp.exe -s -m 4,*,192.168.242.5 -l 64k -a 2 -t 30

Note that both commands include the same IP address: the address of the receiver.

The output of the tool, which can be saved as an XML file, gives detailed information about the total amount of data transferred, CPU usage, and total throughput during the test. This information can be used to determine whether a performance bottleneck is caused by the network or another component of the system in question.

There are a couple of important things to remember when using NTttcp:

It must be run on both sides of a connection (a client and server, for example).

In the previous version, it was necessary to rename the executable to specify whether it was to be run as a sender or receiver. This is no longer necessary in the new version, which uses the -s and -r switches for this purpose.

For comprehensive documentation of all of the options available in the tool, download version 3.0 and review the included .docx file.