須藤さま 川上です。 >根本的な対策はメモリー不足にならないようにすることだと思いま >す。メモリーを増やすなり(すごく遅くなるけど)スワップをそれ >なりに用意するだったりです。 やはりそれに限りますよね。。 本番環境では当然それなりのメモリを予定していますが、極端な話、 データ容量が4GB、OSメモリが16GBの場合、全データをメモリに展開する検索を 同時に4人が行ったらやはりメモリ不足に陥ると思っています。 (理論上、どれだけのメモリを用意しても同時検索でメモリ不足になる、と) このような事態は皆様どのように対応しているのかが気になります。。 (キュー等で同時検索数を絞る、とかでしょうか) >それでもがんばるなら実際にどこでどうなってシャットダウンして >いるのかをログなりデバッガーなりで確認して個別に対応を検討す >る必要があります。(メモリー不足でもログやデバッガーがちゃん >と動いてくれれば。) > >私は見ていないのでなんとも言えませんが、川上さんがログを確認 >した結果ではなにもでていなかったということなので、かなりしん >どそうだなぁという気持ちにはなります。 はい、ログには何も出ておらず、突然メモリ不足のデバッグログで出て、 Postgresがシャットダウンされるようです。 検索途中で予め設定されたメモリ容量を超えた場合は検索を中断して、 エラーを返してPostgresのシャットダウンを回避してくれれば、 (statement_timeout みたいなイメージ) と、最初は考えていたのですが、それでも同時検索された場合は同じく メモリ不足になりますね。。 やはりメモリ不足にならないようにする、に限るのかな。。 UNIONについては承知いたしました。 ご教示ありがとうございます。 以上、よろしくお願いいたします。