Ich versuche, die NFS / TCP-Bandbreite zwischen einem Linux-Client und einem einzelnen NFS-Server über eine 10-Gbit / s-Verbindung zu maximieren. Obwohl jeder NFS-Mount ein eigenes Gerät hat (Major / Minor), läuft alles auf eine einzige TCP-Verbindung hinaus, und dies ist ein Engpass.
Mit iperf und mehreren TCP-Verbindungen kann ich ~ 8 Gbit / s erreichen, aber NFS bleibt in einem einzelnen TCP-Stream hängen und ist auf ~ 2 Gbit / s beschränkt (noch keine TCP-Optimierung).
Unter Solaris gibt es die Systemeinstellung, mit rpcmod:clnt_max_conns
der festgelegt werden kann, wie viele gleichzeitige TCP-Verbindungen das System zu einem einzelnen NFS-Server verwenden kann.
Gibt es ein Linux-Äquivalent oder eine Möglichkeit dazu?
Als Problemumgehung weiß ich, dass ich viele IP-Adressen auf dem NFS-Server festlegen und dann die Mountpunkte auf ihnen ausgleichen könnte, aber das wäre nicht optimal.
quelle
Antworten:
Sie können wieder zu UDP wechseln und Jumbo-Pakete verwenden (z. B. 4k-Datagramme). Es kann sehr hilfreich sein, wenn Ihr gesamtes Netzwerk Jumbo-Frames unterstützt, sodass Sie nicht auf jeder Seite IP-Pakete wieder zusammensetzen müssen.
quelle
Wenn Sie NFS v4.1 oder höher verwenden, können Sie möglicherweise pNFS (paralleles NFS) verwenden. Gemäß den folgenden Release-Informationen von Red Hat ist es in RHEL 6.4 verfügbar, aber ich habe keine Updates gesehen, die auf die Verfügbarkeit in anderen Linux-Distributionen hinweisen.
https://www.redhat.com/about/news/press-archive/2013/2/red-hat-announces-general-availability-of-next-minor-release-of-red-hat-enterprise-linux- 6
pNFS ist in RFC5661 ab 2010 definiert. Möglicherweise möchten Sie untersuchen, ob Ihre Speicher-Appliance pNFS vollständig unterstützt.
quelle