2010年1月8日金曜日

Stale NFS file handleとは

fj.os.linux/japan.comp.linuxを参照。
ファイルハンドルとは、オープンしているサーバ上のファイルを指し示すためにクライアント側が持っている識別子のことです。
その識別子が指し示しているファイルがサーバ上で無くなってしまったり、アクセスできなかったりした時(例えば、exportしていたファイルシステムが、サーバ側でローカルにumountされてしまった時とか)にこのエラーが起きます。

じゃあ、/proc/[pid]/fd は?

プロセスがオープンしたファイル各々に対するエントリを含むサブディレクトリ。 ファイルディスクリプタがファイル名で、 実際のファイルへのシンボリックリンクになっている。 したがって 0 は標準入力、1 は標準出力、2 は標準エラー出力、などとなる。マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このディレクトリの内容は参照できない (スレッドの終了は通常 pthread_exit(3) を呼び出しにより行われる)。 コマンドライン引き数としてファイル名を受け取るが、引き数が 渡されなかった場合に標準入力から入力を受け取らないようなプログラムや、 コマンドライン引き数として書き込みファイルを受け取るが、引き数が 渡されなかった場合に標準出力に出力を行わないようなプログラムであっても、 /proc/[pid]/fd を使うことで標準入力や標準出力を使用できるようになる。 例えば、 -i を入力ファイルを指定するフラグ、 -o を出力ファイルを指定するフラグと仮定すると、以下のコマンドを 実行することにより、フィルタとして動作させることができる。
サーバの返答が遅くなって、クライアントが「ファイルが無くなった」と錯覚してしまうようなことがあるのかな????

だとすると、同じFAQにある、

/proc/sys/net/ipv4/ipfrag_high_thresh
/proc/sys/net/ipv4/ipfrag_low_thresh

に、それぞれデフォルト値の倍の値を書き込む、という手段で改善されるのかも知れません。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

DNS named.root 更新確認スクリプト

#!/bin/bash # DNSのnamed.rootファイルの更新確認スクリプト # 最新版のnamed.rootファイルを取得し、差分を確認する。 # 更新履歴 # 2014.02.07 watari # お約束 export LANG=C ## 実行ディレクトリ #PR...