[pgsql-jp: 30737] Re: UPDATE文をきっかけにサーバの子プロセスが全てダウン

Noriyuki TAKEI noriyuki.takei @ jalinfotec.co.jp
2003年 8月 9日 (土) 16:11:36 JST


武井です。

>   syslog に OS からのメッセージで関連しそうなのはありませんか? lsof で見て、ど
> のくらいのファイルが PostgreSQL のバックエンドでオープンされていますか? もし、
> 多ければ、max_files_per_process=50 にするとどうなるか試せますか?

このエラーが発生する直前に下記のエラーが頻発していることがわかりました。

_mdfd_getrelnfd: cannot open relation pg_opclass_oid_index: 許可がありません
_mdfd_getrelnfd: cannot open relation pg_proc: 許可がありません

relation pg〜という名前のファイルが多数オープンできないという旨を
示すログが頻繁に出力されております。

同様にエラー発生時にPHPを動作させたときに以下のようなエラーが画面上に
出力されました。

Warning:
Unknown(/home/shuttai/www/pub/display/script/catv/catv_disp.php): failed
to open stream: Permission denied in Unknown on line 0

Warning: (null)(): Failed opening '/home/shuttai/www/pub/display/script/catv/catv_disp.php' for inclusion (include_path='.:/php/includes:/home/shuttai/www/config:/home/shuttai/www/modules') in Unknown on line 0

どれもファイルをオープンするときのエラーでPostgreSQLやPHP側からも
似たようなエラーを吐いているため、やはりカーネルがファイル
ディスクリプタを使い切っているという線で洗ってみたのですが、

lsof | wc -l

で調べたところ

3064

という結果でした。1プロセスあたりの使用できるファイル数は13052と
設定されているので、ファイルディスクリプタは使い切ってないと
思われます。

-- 
Noriyuki Takei <noriyuki.takei @ jalinfotec.co.jp>




pgsql-jp メーリングリストの案内