web-dev-qa-db-ja.com

NFSではF_WRLCK呼び出しに時間がかかる

30個のクラスターノード間でNFSを共有しています。ノードはDebian5および6です。NFSサーバーはOpenSolaris2009です。優れたハードウェアと20GbitInfinibandネットワークがあります。

クラスターノードでは、fs操作は迅速ですが、次の場合はそうではありません。

  • Mutt
  • Sqlite3
  • Rライブラリ。例えば。 Rscript <(echo "library(GOstats)")

次のシステムコールの後、それらはすべて数分間スタックします。

  • fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=1073741824, len=1}または
  • fcntl(3, F_SETLK, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, len=1}

原因は何でしょうか?診断して修正する方法は?

NFSサーバーをOpenIndianaに切り替える oi_148 修正しますか?

2

最新のOpenIndianaにアップグレードしました。問題は消えました。

0

NFSロックサービスがサーバーで実行されているかどうかを確認します。

1

これらのシステムコール ファイルのロックを取得します。おそらく、別のプロセスに現在ロックがあり、スタックしたプロセスはそのロックが解放されるのを待っています。 O'Reilly's Managing NFS and NIS 、2nd Editionの 第11章 にいくつかのトラブルシューティングのヒントがあります(古いバージョンのSolarisの場合、それでも役立つ場合があります)。

1
sciurus