排查有关基础网络的 TCP/IP 性能问题

注意

本文包含在 3 部分系列中。 可以查看 第 1 部分:TCP/IP 性能概述第 3 部分:TCP/IP 性能已知问题

当吞吐量低于给定 基线时,请使用数据包捕获工具获取网络跟踪并检测网络问题。

使用 ctsTraffic 工具分析网络跟踪

下面是如何使用 ctsTraffic 工具分析网络跟踪的示例:

注意

获取网络跟踪可能会导致吞吐量进一步放缓。

  1. 在客户端和服务器端运行 ctsTraffic 工具。

    在服务器上运行以下命令:

    CTStraffic -listen:*
    

    在客户端上运行此命令:

    CTSTraffic -target:<serverip> -consoleverbosity:3 -connections:4 -iterations:10 -connectionfilename:<filename>.csv
    
  2. 停止客户端和服务器端的网络跟踪。

  3. <检查文件名>.csv文件:

    • 如果 NetworkErrors 或 ProtocolErrors 显示在文件中,请转到下一步。
    • 如果未显示任何错误,请停止并放弃网络跟踪。 在客户端和服务器上收集新的跟踪。 尝试在步骤 1 中使用越来越多的连接(-connections:),直到发生错误。
  4. 在文件名>中找到<错误的客户端套接字号.csv文件,并将此数字作为筛选器来检查数据包丢失、数据包重新传输或未从任一终结点启动的 TCP 重置。 利用此信息,请与网络团队联系以获取帮助。

检查性能监视器日志

检查性能监视器日志,查找在以下情况下丢弃的数据包:

  • 存在错误,但数据包捕获中未发现任何问题。
  • 原始数据包到达目标,但发送方重新传输相同的数据包,因为接收方没有确认(ACK)。

数据包丢弃可能是由网卡驱动程序或处理器无法处理接收方上的传入数据包引起的。 确保网卡驱动程序是最新的,并且 RSS/VMMQ 已正确设置。 例如,若要在 SQL Server 等服务器上使用更多基处理器,请自定义 RSS/VMMQ,不要使用基础处理器,并从下一个物理核心开始处理。

有关详细信息,请参阅 与网络相关的性能计数器

注意

仅自定义 RSS/VMMQ 进行故障排除,并完全了解操作。

后续步骤