web-dev-qa-db-ja.com

NFSフォルダでのファイルの削除とコピーが遅い

イメージをホストし、NFSを介して1つのクライアントの1つのディレクトリにアクセスできるサーバーがあります。
ディレクトリには約70Kの画像が含まれ、12GBの大きさです。

NFSディレクトリをホストするサーバーでcprmのようなコマンドを実行するとパフォーマンスは向上しますが、クライアントからcprmを実行するとNFSディレクトリでは、real timeが遅く、usersysの時間が速い場合、コマンドが非常に遅くなることがあります。

real    1m33.409s
user    0m0.000s
sys     0m0.000s

私の仮定は次のとおりです。

  1. ディレクトリが何らかの理由でロックされ、長い待機が発生します
  2. 2つのサーバー間の接続はどういうわけか信頼できません

これがクライアントのnfsstat -cからのダンプです

Client rpc stats:
calls      retrans    authrefrsh
3018431    1          3018571
3
horen

クライアントにリモートファイルシステムをマウントするときは、noatimeオプションを試してください。

man 8 mountから

noatime  -  Do not update inode access times on this 
filesystem (e.g., for faster access on the news  spool
to speed up news servers).

私の場合、書き込みパフォーマンスが大幅に向上しました。

3
Luis

構成:

Syncの代わりにasyncを使用してエクスポートしてみてください。このようにして、発行された各コマンドの確認応答を待つ必要はありません(これが状況のデータ整合性に与える影響を考えてください)。

ネットワーキング:

  1. 両方のリンクが全二重で実行されていること、および可能であればジャンボフレームがネットワーク全体で有効になっていることを確認してください。すべてのデバイスとスイッチの設定が同じであることを確認してください。同じ設定をしないと、断片化の問題が発生します。
  2. Wiresharkまたは別のツールを使用してUDPの断片化を確認します。

ソース

  1. http://www.tldp.org/HOWTO/NFS-HOWTO/performance.html
  2. http://lists.samba.org/archive/linux/2006-October/016332.html
  3. https://wiki.archlinux.org/index.php/NFS_Troubleshooting
1
Jeff