34.5. 高スループットのための TCP 接続のチューニング
Red Hat Enterprise Linux で TCP 関連の設定をチューニングして、スループットを向上させ、レイテンシーを短縮し、パケットロスなどの問題を防止します。
34.5.1. iperf3 を使用した TCP スループットのテスト リンクのコピーリンクがクリップボードにコピーされました!
iperf3 ユーティリティーは、サーバーモードとクライアントモードを提供し、2 つのホスト間のネットワークスループットテストを実行します。
アプリケーションのスループットは、アプリケーションが使用するバッファーサイズなどの多くの要因に依存します。したがって、iperf3 などのテストユーティリティーで測定された結果は、実稼働ワークロード下のサーバー上のアプリケーションの結果とは大幅に異なる可能性があります。
前提条件
-
iperf3パッケージはクライアントとサーバーの両方にインストールされている。 - どちらかのホスト上の他のサービスによって、テスト結果に大きな影響を与えるネットワークトラフィックが発生することはない。
- 速度が 40 Gbps 以上の接続の場合、ネットワークカードは Accelerated Receive Flow Steering (ARFS) をサポートし、この機能はインターフェイスで有効になっている。
手順
オプション: サーバーとクライアントの両方のネットワークインターフェイスコントローラー (NIC) の最大ネットワーク速度を表示します。
# ethtool enp1s0 | grep "Speed" Speed: 100000Mb/sサーバー上では以下の設定になります。
firewalldサービスでデフォルトのiperf3TCP ポート 5201 を一時的に開きます。# firewall-cmd --add-port=5201/tcpiperf3をサーバーモードで起動します。# iperf3 --serverサービスは現在、受信クライアント接続を待機しています。
クライアントで以下を実行します。
スループットの測定を開始します。
# iperf3 --time 60 --zerocopy --client 192.0.2.1--time <seconds>: クライアントが送信を停止する時間を秒単位で定義します。このパラメーターを機能すると予想される値に設定し、後の測定で値を増やします。クライアントが送信パス上のデバイスまたはサーバーが処理できる速度よりも速い速度でパケットを送信すると、パケットがドロップされる可能性があります。
-
--zerocopy:write()システムコールを使用する代わりに、ゼロコピーメソッドを有効にします。このオプションは、ゼロコピー対応アプリケーションをシミュレートする場合、または単一ストリームで 40 Gbps 以上に達する場合にのみ必要です。 -
--client <server>: クライアントモードを有効にし、iperf3サーバーを実行するサーバーの IP アドレスまたは名前を設定します。
iperf3がテストを完了するまで待ちます。サーバーとクライアントの両方で統計が毎秒表示され、最後に概要が表示されます。たとえば、以下はクライアントに表示される概要です。[ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 101 GBytes 14.4 Gbits/sec 0 sender [ 5] 0.00-60.04 sec 101 GBytes 14.4 Gbits/sec receiverこの例では、平均ビットレートは 14.4 Gbps でした。
サーバー上では以下の設定になります。
-
Ctrl+C を押して
iperf3サーバーを停止します。 firewalldで TCP ポート 5201 を閉じます。# firewall-cmd --remove-port=5201/tcp
-
Ctrl+C を押して