我有一个网卡,速度为 20Gbps。通过使用基准测试工具(我使用的工具是 netperf)对该适配器进行压力测试,我能够获得 ~18Gbps,这是可以接受的。
现在,再安装一个相同速度(即 20Gbps)的适配器,并使用基准测试工具对两个适配器进行压力测试后,我预计速度约为 36 到 38Gbps。但仍然能够达到相同的 18Gbps。
这是否意味着,吞吐量是通过考虑两个物理适配器上的平均流量来计算的,而不是将值相加,并且始终不会跨越单个适配器链路速度的边界?
PS:设置看起来是这样的。总共有 32 个 netperf 会话,具有足够大的套接字缓冲区大小和发送/接收调用中的消息大小,分别为 256K 和 16K。每个适配器同时由 16 个会话使用。
答案1
摘自 Netperf 手册:
Netperf 是围绕基本的客户端-服务器模型设计的。——
一旦控制连接建立并且配置信息已传递,就会使用适合指定测试的 API 和协议为测量本身打开一个单独的“数据”连接。
由于测试的是客户端和服务器之间的吞吐量,因此它取决于该连接。为了一起测试两个适配器,它们应该以一种利用两个适配器进行单个连接的方式进行负载平衡。除了这个基准测试之外,这可能对其他任何事情都不是很有用。