web-dev-qa-db-ja.com

10GbEネットワークでのスループットが非常に低い

私は2台のLinuxマシンを持っており、それぞれに Solarflare SFN5122F 10GbENICが装備されています。 2つのNICは、SFP +直接接続ケーブルで接続されています。

netperf を使用して、2台のマシン間のTCPスループットを測定しています。 1つのボックスで、次のコマンドを実行します。

netserver

そして他に:

netperf -t TCP_STREAM -H 192.168.x.x -- -m 32768

私は得る:

MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.x.x (192.168.x.x) port 0 AF_INET
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  32768    10.02    1321.34   

測定されたスループットは1.3Gb/sです。これは理論上の最大値の7.5倍であり、1GbEよりもわずか30%高速です。

これをトラブルシューティングするためにどのような手順を実行できますか?

5
NPE

いくつかのこと:

  • mtuを ジャンボフレームを利用 に調整してみましたか?
  • 2つのサーバー間のリンクにパケット損失がないことを絶対に確信していますか?
  • ethtoolは両端のインターフェースにエラーを表示しますか?
  • 長時間のテスト中にtop/atopは何と言いますか?iowaitが完全に占有しているコアはありますか?

[おそらく]単一のtcpセッションで完全な10gbitを達成することはできませんが、tcpの処理とネットワークカード自体との通信を微調整することで、それに近づくためにいくつかの追加の調整を行うことができます-見てください ここ =または ここ

6
pQd