Linuxクライアントと10 Gbpsリンク上の単一のNFSサーバー間のNFS/TCP帯域幅を最大化しようとしています。各NFSマウントには独自のデバイス(メジャー/マイナー)がありますが、すべてが1つのTCP接続になり、これがボトルネックになります。
Iperfと複数のTCP接続を使用すると、〜8Gbpsに到達できますが、NFSは単一のTCPストリームでスタックし、〜2Gbpsに制限されています(TCPチューニングはまだ行われていません)。
Solarisでは、システム設定rpcmod:clnt_max_conns
これにより、システムが単一のNFSサーバーに対して使用できる同時接続数TCP=接続を設定できます。
Linuxに相当するものまたはそれを行う方法はありますか?
回避策として、NFSサーバーに多くのIPを設定し、それらのマウントポイントの負荷を分散できることを知っていますが、それは最適ではありません。
UDPに切り替えて、ジャンボパケット(たとえば、4kデータグラム)を使用できます。ネットワーク全体でジャンボフレームをサポートすると、両側でIPパケットの再構成を行わなくて済むようになるため、非常に役立ちます。
NFS v4.1以降を使用している場合は、pNFS(並列NFS)を利用できる場合があります。以下のRed Hatからのリリース情報によると、RHEL 6.4で利用可能ですが、他のLinuxディストリビューションで利用可能であることを示すアップデートは確認していません。
pNFSは2010年からRFC5661で定義されています。ストレージアプライアンスがpNFSを完全にサポートしているかどうかを調査したい場合があります。