> 技术文档 > TOE卸载 (TCP Offload Engine) 测试

TOE卸载 (TCP Offload Engine) 测试

TOE卸载
将主机CPU上运行的TCP/IP协议栈(如连接建立/终止、数据包分段/重组、校验和计算、拥塞控制等)的部分或全部功能,转移到网络接口卡上的专用硬件引擎来处理。

目的:降低主机CPU负载、提高网络吞吐量、降低传输延迟。

应用场景:高带宽、高连接数的场景。

测试目标

验证TOE卸载功能:

  • 功能正确性:卸载后TCP连接、数据传输是否正常。

  • 性能提升:CPU占用率是否显著降低?网络吞吐量是否提升?延迟是否降低?

  • 兼容性:与操作系统、驱动、应用程序、其他网络功能(如虚拟化、VLAN、TLS卸载)的兼容性。

  • 稳定性与可靠性:在高负载、长时间运行、异常情况(如丢包、乱序)下的表现。

  • 资源占用:TOE引擎本身的资源消耗(如内存、NIC缓存)是否合理。

  • 可管理性:启用/禁用、状态监控、配置调整是否方便。


一、 测试方案

  1. 目标与范围:

  • 明确测试目的:验证TOE功能、性能提升、稳定性等。
  • 定义测试范围:特定操作系统版本、NIC驱动版本、固件版本、应用程序(如HTTP服务器、数据库、文件传输工具)。
  • 明确测试的卸载功能:完整TOE、部分卸载(如仅校验和、仅LSO/LRO)。
  1. 测试环境:

    • 硬件:

      • 配备支持TOE的NIC的服务器(被测系统)。

      • 高性能客户端/流量生成器(如另一台服务器、专业测试仪)。

      • 交换机(支持所需带宽和特性)。

      • 必要时使用带外管理设备。

    • 软件:

      • 目标操作系统(明确内核版本)。

      • 最新稳定版NIC驱动(确认支持TOE)。

      • NIC固件。

      • 测试工具:iperf3,netperf,ntttcp,wireshark/tcpdump,ethtool,perf,sar, 应用层基准测试工具(如wrk,fioover network)。

      • 监控工具:top/htop,vmstat,mpstat,nicstat, 厂商管理工具。

  2. 测试策略:

    • 对比测试:核心策略!在完全相同的环境和负载下,对比启用TOE禁用TOE的状态。

    • 功能测试:验证基本连接、数据传输在各种场景下是否正常。

    • 性能测试:测量不同负载(不同连接数、不同报文大小、不同吞吐量)下的CPU利用率、吞吐量、延迟。

    • 压力/稳定性测试:长时间高负载运行,模拟异常网络条件(丢包、延迟、乱序)。

    • 兼容性测试:与常用应用、虚拟化环境、其他卸载特性(如VLAN, GRO/GSO, TLS)组合测试。

    • 故障恢复测试:测试驱动加载/卸载、NIC热插拔、系统重启等操作后TOE状态恢复。

  3. 测试方法:

    • 自动化:使用脚本(Shell, Python)控制测试工具执行、收集数据、生成报告。

    • 手动:进行配置、监控、异常注入、结果分析。

    • 监控:持续监控系统关键指标(CPU, 内存, 网络栈, NIC状态)。

  4. 入口/出口准则:

    • 入口:环境准备就绪,驱动/固件版本确认,基线测试(禁用TOE