运行 iperf 时,AMD EPYC 7413 速度会降低至约 400mhz

运行 iperf 时,AMD EPYC 7413 速度会降低至约 400mhz

我们尝试在两台服务器之间建立 40gbit 连接,使用 iperf 时 CPU 行为异常。它只使用了 40Gbit/s 左右的速度。

服务器规格:

  • AMD EPYC 7413
  • 8x MultiBitECC 3200 MHz 16384 MB 内存
  • 超微 H12SSL-CT
  • 英特尔 XL710 40GBe
  • Ubuntu 20.04.3 LTS 5.4.0-84-gene

服务器通过光纤直接连接。无需交换机。

例子

host1# iperf -s
host2# iperf -c host1 -i 1 -t 120
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 1.39 GBytes 12.0 Gbits/sec
[ 3] 1.0- 2.0 sec 1.00 GBytes 8.61 Gbits/sec
[ 3] 2.0- 3.0 sec 1.03 GBytes 8.88 Gbits/sec
[ 3] 3.0- 4.0 sec 1.04 GBytes 8.92 Gbits/sec
[ 3] 4.0- 5.0 sec 1021 MBytes 8.56 Gbits/sec
[ 3] 5.0- 6.0 sec 1.05 GBytes 9.01 Gbits/sec
[ 3] 6.0- 7.0 sec 1.02 GBytes 8.78 Gbits/sec
[ 3] 7.0- 8.0 sec 1.02 GBytes 8.74 Gbits/sec
[ 3] 8.0- 9.0 sec 1.01 GBytes 8.69 Gbits/sec
[ 3] 9.0-10.0 sec 1.02 GBytes 8.75 Gbits/sec
[ 3] 10.0-11.0 sec 1.05 GBytes 9.03 Gbits/sec
[ 3] 11.0-12.0 sec 1015 MBytes 8.51 Gbits/sec
[ 3] 12.0-13.0 sec 1.02 GBytes 8.72 Gbits/sec
[ 3] 13.0-14.0 sec 1014 MBytes 8.51 Gbits/sec
[ 3] 14.0-15.0 sec 974 MBytes 8.17 Gbits/sec
[ 3] 0.0-15.0 sec 15.6 GBytes 8.92 Gbits/sec

我在互联网上找到了官方的性能调优指南AMD还有一些fasterdata.es.net

他们建议进行某些系统设置,例如更改 CPU 调节器和 TCP 缓冲区。我相应地进行了更改,但只获得了 1Gbit/s 的改进。

当我检查 CPU 时钟速度时,运行 iperf 时 CPU 时钟速度总是降到 400MHZ 左右。

有没有建议为什么 iperf 会让 CPU 进入睡眠状态,或者我如何提高单线程 tcp 传输速度?运行多个 tcp 线程可以更好地利用带宽,但这不是我们的用例。

谢谢

答案1

我将 BIOS 中的全局 C 状态控制从自动更改为禁用,并设置

tuned-adm 配置文件网络吞吐量

我不确定这是否是最终的解决方案,但目前它有效。

编辑:

最后,BIOS 更新也是必要的。但是 tuned-adm 仍然可以提高性能。

相关内容