
2 台のサーバー間で 40Gbit 接続を設定しようとしていますが、iperf を使用すると CPU の動作がおかしくなります。また、可能な 40Gbit/s のうち、約 10Gbit/s しか使用されません。
サーバー仕様:
- インテル® EPYC® 7413
- 8x マルチビットECC 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
CPU ガバナーや TCP バッファを変更するなど、特定のシステム設定を行うことを推奨しています。それに従って変更しましたが、改善されたのは 1Gbit/s だけでした。
CPU クロック速度をチェックしたところ、iperf の実行中は CPU が常に 400MHZ 程度までクロックダウンしていました。
iperf が CPU をスリープ状態にする理由、またはシングル スレッドの TCP 送信速度を向上させる方法について何か提案はありますか? 複数の TCP スレッドを実行すると帯域幅がより有効に活用されますが、これは私たちの使用例ではありません。
ありがとう
答え1
BIOSのグローバルCステート制御を自動から無効に変更し、
調整されたadmプロファイルネットワークスループット
これが最終的な解決策かどうかはわかりませんが、今のところはうまく機能しています。
編集:
最終的には BIOS のアップデートも必要になりました。ただし、tuned-adm はパフォーマンスの向上をもたらします。