PostgreSQL サーバ上でボトルネッククエリを見つけたくて
pgFouine を使ってみた。
本来ならスムーズに動きそうなもんだが、ちょっとハマったのでメモを残す。
まずは、インストール 。
本家サイト からダウンロードして、どこでもいいので展開。
tar xfz pgfouine-1.2.tar.gz |
以上。
あとは動かすだけなんだが、syslog 出力したログを取り込むのが前提なので、あらかじめ PostgreSQL の設定をそのようにしておくこと。
また、ログフォーマットにも指定がある。
最後のシングルクォートの前には空白が入っているので注意。
log_line_prefix='%t [%p]: [%l-1] ' |
このようにしておくこと。
で、最後のポイント。これにつまづいた。
ロケール指定がないこと。
initdb するときに --no-locale を指定するのは世界のお約束だが、やってないシステムでは postgresql.conf にて、以下の指定が要る。
これが 'ja_JP.UTF-8' なんて値になっていると、pgFouine は文句を吐きまくって、しまいには「有効なログが一行もないよ」と怒って終了する。
ロケール設定とか何につかうねん。
あとは、こうやって出力したログを次のように指定して実行すれば、結果 HTML が標準出力に出てくるので、ファイルに書き出すなりして見る。
./pgfouine.php -file /var/log/pgsql.log |
以上。
ちなみに、pgfouine って、どう読めばいいんだろう。