[pgsql-jp: 28895] Re: recovery mode後のタイムゾーンについて
sugita @ sra.co.jp
sugita @ sra.co.jp
2003年 2月 2日 (日) 01:41:20 JST
杉田です。
From: "bxcel" <bxcel @ prophet.jp>
Subject: [pgsql-jp: 28894] Re: recovery mode後のタイムゾーンについて
Date: Sun, 2 Feb 2003 00:47:33 +0900
;;; OSのオープンファイル数の上限を下記のようにして変更しました。
;;; # echo 500 > /proc/sys/fs/file-max
;;; # cat /proc/sys/fs/file-max
;;; 500
;;;
;;; そしてJavaでコネクションを200個開いていくプログラムを作成し、
;;; 実行しましたところ、103個目から200個目まで
;;; The connection attempt failed because Exception: -
;;; java.net.SocketException: Too many open files in system
;;; と表示されました。
;;;
;;; しかしsyslogには
;;; Feb 1 22:27:44 hoge kernel: VFS: file-max limit 500 reached
;;; と出ていましたが、recovery modeのログはありませんでした。
;;;
;;; 現象が発生した付近のログに出ていたメッセージからソースを
;;; 調べ再現を試みていたら、コネクションを多数開いている最中に
;;; backendにSIGQUITシグナルを送るとrecovery modeのログが出るこ
;;; とがわかりました。
;;;
;;; 十数回やってみましたが、recovery modeのログは出ましたが、
;;; 再現はしませんでした。
;;;
;;; どうも単純に強制的な再起動だけでは再現しないようです。
PostgreSQL 7.2.3 で再起動で、UTC に戻ってしまうというのは、他にも聞いていま
す。その場合には、オープンファイルを使い切っていたので、使い切らないようにする
ことで回避をしました。その処置をする前は、何度か発生していたのが、処置の後は、
1 ヶ月以上発生していません。
先の実例から、オープンファイルを使い切ることと何かが関連して、再起動が起きる
と UTC に戻る場合があるのではないかと予想し、再現しようとしたのですが、できて
いません。ファイルがオープンできなくなると、再起動はされないのですが、チェック
ポイントプロセスで UTC になることがあり、CREATE TABLE すると ERROR: cannot
create class2: File exists というメッセージが表示されることがありました。
7.3.1 では試していません。
再現できると、追求しやすいのですが。
Kenji Sugita
pgsql-jp メーリングリストの案内