Performance Tuning for NTttcp
NTttcp is a Winsock-based port of ttcp to Windows. It helps measure network driver performance and throughput on different network topologies and hardware setups. It provides the customer with a multithreaded, asynchronous performance workload for measuring an achievable data transfer rate on an existing network setup.
For more info on NTttcp, see How to Use NTttcp to Test Network Performance. You can download the latest version from TechNet.
When setting up NTttcp, you should consider the following:
A single thread should be sufficient for optimal throughput.
Multiple threads are required only for single-to-many clients.
Posting enough user receive buffers (by increasing the value passed to the -a option) reduces TCP copying.
You should not excessively post user receive buffers because the first buffers that are posted would return before you need to use other buffers.
It is best to bind each set of threads to a logical processor (the second delimited parameter in the -m option).
Each thread creates a logical processor that connects to (listens) a different port.
The following table lists some examples:
Syntax | Details |
---|---|
NTttcp.exe -s -m 1,0,10.1.2.3 -a 2 -t 10 |
This is an example of a sender with the following characteristics:
|
NTttcp.exe -r -m 1,0,10.1.2.3 -a 6 -t 10 |
This is an example of a receiver with the following characteristics:
|
Important
Make sure to enable all offloading features on the network adapter.
TCP/IP Window Size
For 1 GB adapters, the settings shown in the table above should provide good throughput because NTttcp sets the default TCP window size to 64 KB through a specific logical processor option (SO_RCVBUF) for the connection. This provides good performance on a low-latency network. In contrast, for high-latency networks or for 10 GB adapters, the default TCP window size value for NTttcp yields less than optimal performance. In both cases, you must adjust the TCP window size to allow for the larger bandwidth delay product. You can statically set the TCP window size to a large value by using the -rb option. This option disables TCP Window Auto-Tuning, and we recommend using it only if the user fully understands the resultant change in TCP/IP behavior. By default, the TCP window size is set at a sufficient value and adjusts only under heavy load or over high-latency links.
Related topics
Performance Tuning for Workloads