Troubleshooting TCP/IP performance issues about underlying network

Note

This article is included in a 3-part series. You can review Part 1: TCP/IP performance overview and Part 3: TCP/IP performance known issues.

When the throughput falls below a given baseline, use a packet capturing tool to take a network trace and detect network issues.

Use the ctsTraffic tool to analyze the network trace

Here's an example of how you can use the ctsTraffic tool to analyze the network trace:

Note

Taking a network trace may cause further slowdown of the throughput.

  1. Run the ctsTraffic tool on both client and server sides.

    Run this command on the server:

    CTStraffic -listen:*
    

    Run this command on the client:

    CTSTraffic -target:<serverip> -consoleverbosity:3 -connections:4 -iterations:10 -connectionfilename:<filename>.csv
    
  2. Stop network traces on both client and server sides.

  3. Check the <filename>.csv file:

    • If NetworkErrors or ProtocolErrors are displayed in the file, go to the next step.
    • If no error is displayed, stop and discard the network trace. Collect a new trace on the client and the server. Try with an increasing number of connections (-connections:) in step 1 until the error occurs.
  4. Find the client socket number of the error in the <filename>.csv file and apply this number as a filter to check for a packet loss, a packet retransmission, or a TCP reset that wasn't initiated from either endpoint. With this information in hand, contact the network team for help.

Check Performance Monitor logs

Check Performance Monitor logs to find Packet Received Discarded in these situations:

  • There are errors, but no issues are found in the packet capture.
  • The original packet reaches the destination, but the sender retransmits the same packet because there's no acknowledgment (ACK) by the receiver.

The packet discards might be caused by the network card driver or by the processor being unavailable to process incoming packets on the receiver. Make sure the Network card driver is up to date and that the RSS/VMMQ is set up correctly. For example, to use more base processors on a server such as SQL server, customize RSS/VMMQ not to use the base processor and to start processing from the next physical core.

For more information, see Network-Related Performance Counters.

Note

Customize RSS/VMMQ only for troubleshooting and with a full understanding of the operation.

Next steps