1

私は環境のパフォーマンス チューニングを検討しており、マウント オプションの設定などの単純なものから、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 マウントがあるため、オーバーヘッドの一部が削除されます。

4

1 に答える 1

1

ファイルシステム上の UNIX ソケット ファイルは、2 つのプロセスが同じソケットに接続するための単なるハンドルです。すべての通信はローカルであり、それを NFS に配置しても (それが可能であれば)、マシン間の通信は有効になりません。さらに、NFS に何らかのメカニズムがあったとしても、memcache を直接使用するよりも悪い可能性があります。

于 2012-06-05T14:54:13.950 に答える