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

sugita @ sra.co.jp sugita @ sra.co.jp
2003年 8月 9日 (土) 18:11:05 JST


  杉田です。

From: Noriyuki TAKEI <noriyuki.takei @ jalinfotec.co.jp>
Subject: [pgsql-jp: 30737] Re: UPDATE文をきっかけにサーバの子プロセスが全てダウン
Date: Sat, 09 Aug 2003 16:11:36 +0900

;;; >   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

  これのみでは判定できないです。lsof -r 5 -c post など、として、現象発生直前か
ら直後までを調べる必要があります。

  syslog への OS のメッセージはどのようでしょうか?

;;; という結果でした。1プロセスあたりの使用できるファイル数は13052と
;;; 設定されているので、

  1 プロセスあたりで使用できるファイル数を 13052 とすることをどのようにして設
定したのでしょうか?

;;; 			ファイルディスクリプタは使い切ってないと
;;; 思われます。

  これは、まだ、そのように判定できないと思えます。


Kenji Sugita                                      



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