私は環境のパフォーマンス チューニングを検討しており、マウント オプションの設定などの単純なものから、sysctl パラメータの設定などの高度なものまで、NFS のパフォーマンスを向上させるために多くのパラメータを設定し、NIC でジャンボ フレームを有効にすることも検討しました。ファイアウォール。
NFS と memcached を同じサーバーで実行していますが、memcached のネットワーク オーバーヘッドを取り除くことでパフォーマンスが向上する可能性があると感じています。
いくつかの環境情報が最初に順番に並んでいます:
ASA 5510 に接続された dsr セットアップ内の 4 つのロード バランスされた Web サーバ。マスター/マスター レプリケーション内の 2 つの mysql サーバ。memcached と nfs を実行する 1 つのアプリ/ファイル サーバー。
サーバーを追加することは議論の対象ではありません。
Web サーバーは、エクスポートされた NFS マウントからコンテンツを提供します。Web サーバー上の NFS マウントは、tcp の代わりに udp を使用するようにセットアップされています。
Web サーバーは apache/php の前で varnish を実行します。varnish は、画像、css、および javascript のみを提供するように設定されており、それぞれに個別のサブドメインを介して提供されます。
ほとんどの場合、サイトは 5 秒以内に読み込まれますが、トラフィックが少ない夜間でも、読み込みに時間がかかることがあります。場合によっては最大10秒です。確かにそれは悪いことではありませんが、パフォーマンスが改善されない理由はありません。すべてのファイルは NFS 経由で提供されます。ちなみに、元の技術者がポジションを変えた後、私は最近この顧客を獲得しました。
サーバーがNFS接続用に最適化されたので、私ができる/すべきだと思ったのは、ネットワーク機能を無効にするUNIXソケットモードで実行するようにmemcachedをセットアップし、エクスポートされたファイルシステムにUNIXソケットを配置することでした。そうすれば、Web サーバーは引き続き memcached に接続できますが、tcp ではなく udp を実行している NFS マウントがあるため、オーバーヘッドの一部が削除されます。