PostgreSQLのチューニング その3

投稿者: | 2013年8月20日

サーバーのパラメーターのチューニングをしたら次にする事といえば、遅いクエリーを特定して、クエリ-のチューニングをする事なので、pgfouineというプログラムを使用して、ログに書き出されたスローログを解析する方法を紹介します。設定は、CentOS6上で行いましたが、ほかの環境でも同じように設定をすることができると思います。

■ syslogの設定の変更
syslogに出力したログに対して、ログの解析を行うことを前提としているので下記のように、「/var/log/postgres」ファイルのみにlocal0ファシリティの内容が書き込まれるようにsyslogの設定を変更する。

# vi /etc/rsyslog.conf
*.info;mail.none;authprive.none;cron.none;local0.none /var/log/messages
local0.* /var/log/postgres

設定を変更したら、設定を反映するためにsyslogの再起動をする(確かリロードでも大丈夫だったような気がするが)

# service rsyslog restart

■ PostgreSQLの設定の変更

syslogで設定した、ファシリティに対してログが出力するための設定とpgfouineで解析できるようにするためにログのフォーマットを変更する

# vi /var/lib/pgsql/data/postgresq.conf
log_line_prefix = ‘user=%u, db=%d ‘
log_destination = ‘syslog’
syslog_facility = ‘LOCAL0’

設定を変更したら、設定を反映するために、PostgreSQLを再起動する(確かリロードでも大丈夫だったような気がするが)

# service postgresql restart

■ pgfouineのセットアップ

CentOSでは、pgfouineは、EPELレポジトリから簡単に導入することができる。もしくは公式サイトのRPMパッケージなどを使用してセットアップする。

# yum install pgfouine

■ PHPのセットアップ

pgfouineの実行にPHPが必要なのでPHPがセットアップされていなかったら下記のパッケージを導入する。

# yum install php-cli php-common pg-gd

■ pgfouineでログの解析

下記のようなコマンドでログファイルを解析することで、上位50番までのスローログの解析結果をHTMLファイルに出力することができる。

/usr/bin/pgfouine.php -file ログファイル名 -top 50 -logtype syslog -format html-with-graphs -report Analize-Slow-Query.html=overall,hourly,bytype,slowest,no-mosttime,n-mostfrequent,n-slowestaverage,n-mostfrequenterrors

PostgreSQLのチューニング その2


コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください