« ロック待ち処理の情報取得をしてみる | トップページ | 部分インデックス »

2014.02.06

postgresql.confの罠

なんてタイトルにするといかにも大げさな話だが、実際はしょうもない小話です。
PostgreSQLで構築したシステムのテスト中にテストメンバーから
「VACUUMしてないでしょ! 設定どうなってんの? 弾幕薄いよ!」
と声をかけられたのが発端で、軽くパニクったエピソードが今回のエントリー。

postgresql.confそのものを真っ先に見てみたところ

#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
#autovacuum = on # Enable autovacuum subprocess? 'on'
このようにコメントされておった。
なるほど、こりゃ一大事AUTO VACUUMしていないではないかとばたばたしたんだが、pg_stat_user_tablesを見るとちゃんとlast_autovacuumカラムに値がある。
苦情を言ってきたメンバーは他のRDBMSで得られた経験から「バキュームしなきゃだめだ!」と勢い込んでいたのだが、PostgreSQL初心者だったのでこうした統計情報を見る前に検索処理等が遅かったことから事実確認無しで問い合わせてきたのであった。

ただそれはともかく、autovacuumパラメータがコメントアウトされているんだから、自動バキュームはしないよね、なんでだろうね? というのがそのときは疑問だったのだが、ふたを開けてみればとっても簡単な事実でして・・

DefaultとしてはAutovacuum=onになっているので、明示的に

autovacuum = on
としていることと
#autovacuum = on
としてあることは同じ意味である、ということであった。
「デフォルトなんだから設定しなくたってデフォルトの挙動をする」
言われてみればそのとおりなんだが、コメントアウトしてるように見えると焦るじゃないか(^^;

というわけでPostgreSQLの設定ファイルであるposgresql.conf内のパラメータは、コメントアウトされてても有効なものがたくさんあるのでご注意を、という警句でした。

|

« ロック待ち処理の情報取得をしてみる | トップページ | 部分インデックス »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/59063977

この記事へのトラックバック一覧です: postgresql.confの罠:

« ロック待ち処理の情報取得をしてみる | トップページ | 部分インデックス »