Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Transmission Control Protocol/Internet Protocol (TCP/IP) performance is a comparison. The comparison should be conducted with identical endpoints in terms of hardware, network path, and Operating System (OS). Real-life performance is different because multiple factors are involved and may cause a bottleneck. These factors are often the underlying network, the design of TCP and the actual transmit rate of storage IOs.
Troubleshooting checklist
TCP settings are predefined in modern Windows operating systems. Use the Get-NetTCPSettings cmdlet to get the TCP settings.
Tips to enhance the throughput:
- Make sure there are no underlying network issues, such as packet loss.
- Enable advanced properties of network interface for performance features (such as Jumbo frames, RSS/VMQ, offload features, and RSC), except if there's an underlying network compatibility issue or for troubleshooting purpose.
- Make sure the TCP is configured to use autotuning level to normal.
- Use Performance Monitor analysis to make sure there's no CPU or storage bottleneck.
- Select security features based on the actual organizations' requirements.
- Create a baseline.
For more information, see Bottlenecks for TCP throughput.
For more information on how to create a baseline, see How to create a baseline.
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
Check Performance Monitor logs
Common issues and solutions
- Slow throughput on high latency and high bandwidth network
- Slow throughput on low latency and high bandwidth network
- Use PowerShell to enable the autotuning level
- Underlying network issues
Data collection
Before contacting Microsoft support, you can gather information about your issue.
Prerequisites
- TSS must be run by accounts with administrator privileges on the local system, and EULA must be accepted (once EULA is accepted, TSS won't prompt again).
- We recommend the local machine
RemoteSigned
PowerShell execution policy.
Note
If the current PowerShell execution policy doesn't allow running TSS, take the following actions:
- Set the
RemoteSigned
execution policy for the process level by running the cmdletPS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
. - To verify if the change takes effect, run the cmdlet
PS C:\> Get-ExecutionPolicy -List
. - Because the process level permissions only apply to the current PowerShell session, once the given PowerShell window in which TSS runs is closed, the assigned permission for the process level will also go back to the previously configured state.
Gather key information before contacting Microsoft support
Download TSS on all nodes and unzip it in the C:\tss folder.
Open the C:\tss folder from an elevated PowerShell command prompt.
Start the traces by using the following cmdlets:
TSS.ps1 -Scenario NET_Winsock
For NCSI related issues:
TSS.ps1 -Scenario NET_NCSI
Accept the EULA if the traces are run for the first time on the computer.
Allow recording (PSR or video).
Reproduce the issue before entering Y.
Note
If you collect logs on both the client and the server, wait for this message on both nodes before reproducing the issue.
Enter Y to finish the log collection after the issue is reproduced.
The traces will be stored in a zip file in the C:\MS_DATA folder, which can be uploaded to the workspace for analysis.