简介与目的:吞吐量(Throughput)衡量链路秒级数据传输能力,PPS(Packets Per Second)衡量小包处理能力;两者影响用户体验、并发连接和应用可靠性。
适用场景:大文件传输、CDN/加速、游戏/VoIP、API 网关等需要同时关注带宽和包处理能力的场景。
步骤:1) 列出峰值带宽(如10Gbps)、目标PPS(例如64B包下需达到500k pps)、最大并发连接数;2) 定义可接受的延迟/丢包阈值(例如RTT < 100ms,丢包 <0.1%);3) 确定测试窗口与SLA验收标准。
硬件选择:测试端使用至少等于或高于目标速率的网卡(例如10GbE/25GbE),主机CPU足够强、关闭省电和C-state。
网络拓扑:本地测试机 — 互联网出口 — 新加坡CN2 GIA链路 — 目标服务器;若无法直接访问GIA,使用GIA提供商的测试端点或代理。
推荐工具:iperf3(吞吐量/TCP/UDP)、TRex(高性能PPS/流量生成)、pktgen(内核级PPS)、hping3(协议测试)、ethtool、tc、sar、tcpdump。
安装示例:sudo apt update && sudo apt install -y iperf3 hping3 ethtool bpfcc-tools; TRex 与 pktgen 需按官方文档部署(TRex 官方包或 pktgen 属内核模块,无额外包)。
关闭网卡分段与合并以测真实PPS:sudo ethtool -K eth0 gro off gso off tso off;
调整环形缓冲区:sudo ethtool -G eth0 rx 4096 tx 4096;
sysctl 调优:sudo sysctl -w net.core.rmem_max=134217728 net.core.wmem_max=134217728 net.core.netdev_max_backlog=250000。
1) 在目标服务器启动 iperf3 服务端:iperf3 -s -p 5201;2) 在测试机运行 TCP 并发流:iperf3 -c
结果解读:以平均吞吐量与 95th 百分位延迟为主;若吞吐达不到预期,检查链路、MTU 与包分片。
为何用专用生成器:iperf3 在小包高 PPS 场景下不准确,推荐采用 TRex 或内核 pktgen;
pktgen 示例脚本(root 执行):echo "rem_device_all" > /proc/net/pktgen/kpktgend_0; echo "add_device eth1" > /proc/net/pktgen/kpktgend_0; echo "pkt_size 64" > /proc/net/pktgen/eth1; echo "count 10000000" > /proc/net/pktgen/eth1; echo "start" > /proc/net/pktgen/kpktgend_0。
TRex 快速示例:使用官方二进制,配置端口并运行简单流量配置文件,记录每秒发送包数与接收包数。
问题:CPU 或中断成为瓶颈;排查:查看 top/iostat、/proc/interrupts,做 IRQ 亲和性绑定(echo 2 > /proc/irq/
问题:链路丢包高;排查:tcpdump 捕获小样本,检查是否为 MTU 导致片段或供应商链路问题。
汇报要点:提供测试方法(工具、版本)、测试时间、配置(MTU/关闭offload)、原始数据(吞吐、PPS、丢包、延迟分布)。
谈判建议:要求在 SLA 中明确最小吞吐(如 95% 的时段能达成)、PPS 下限(特定包长下)、以及故障恢复时间与赔付机制。
答:iperf3 给出的带宽(bps),要估算PPS 用公式:PPS = 带宽字节/(包长度含以太帧头尾总字节);例如10Gbps=10,000,000,000 bit/s ≈1,250,000,000 byte/s,若以64B负载加上以太头部(14)+CRC(4)+IFG(12)等粗略加20字节,总长度约84B,则PPS≈1,250,000,000/84≈14.88M PPS;但真实PPS受网卡/系统限制,需用 pktgen 或 TRex 做验证。
答:GRO/GSO/TSO 为网卡/内核的大包合并/分段功能,会让内核呈现更高的吞吐而掩盖真实的每包处理压力;要准确测PPS与小包性能,必须关闭这些功能以暴露真实包处理负载(命令:ethtool -K eth0 gro off gso off tso off)。
答:关键门槛包括:1) 吞吐量门槛——在真实多流并发测试中,链路应稳定维持在目标带宽的95%以上;2) PPS 门槛——在64/128字节包长下,PPS 达到或超过业务需求;3) 延迟与抖动——RTT 与抖动需低且稳定,满足应用阈值;4) 丢包率——一般应低于0.1%;5) 可观测性与告警——供应商应提供实时链路统计与故障通报机制。