私は特定の答えに興味があります:
詳細:
1つのIPSec実装でパフォーマンスの問題をトラブルシューティングしています。問題は、利用可能な帯域幅が4つのVPNトンネルすべてに均等に分散されていないことです(約200MBps/200MBps/1MBps/1MBpsとして分散。各VPNトンネルは単一のTCP接続をカプセル化します)。 PCAPでは時々、Webサーバーが約2秒間アイドル状態になる(ACKを待機している)ことがわかります。 Webサーバーが未確認のセグメントを再送信すると、ダウンロードが再開されます。
PCAPからの私の内部の問題は、NIC GRO機能がパケットを接着するが、時々それらをTCPスタックに渡さず、それが問題を引き起こしていることです。
このVPNサーバーには、TCP接続を終了するインターフェイスがなく、パケットを転送するだけなので、次に、GROを無効にしてみましたが、その後、トラフィックがすべてのトンネルに均等に分散されていることがわかりました。また、WebサーバーでTCPウィンドウスケーリングが無効になっている場合、GROを有効にしても帯域幅が分散されます(そのため、質問#3を行いました)。
Ubuntu 10.04サーバー(64ビット)で2.6.32-27 linuxを使用しています。 NICはIntel 82571EBです。すべてのインターフェース(HTTPクライアント、VPNクライアント、VPNサーバー、ウェブサーバー)は、1ギガビットイーサネットケーブルでチェーンに直接接続されています。
私はこの記事が驚くほど役立つとわかりました: JLS2009:Generic receive offload 。 GROがどのように機能するかについての概要がわかります。
Ethtool may特定のインターフェースでGROを有効/無効にすることができます。バージョンによって異なります。