連載
» 2017年02月16日 05時00分 公開

【PostgreSQL】最低限設定しておくべきログ関連パラメータ3選データベースサポート最前線の現場から(8)(3/3 ページ)

[家島拓也,株式会社アシスト]
前のページへ 1|2|3       

3:log_min_duration_statement

 最後の「log_min_duration_statement」では、SQLの実行に指定した*ミリ秒以上の時間がかかった場合に、そのSQLと所要時間をログファイルに記録します。

 初期値は、「-1(SQLおよびその所要時間の記録をしない)」に設定されています。このパラメータに、システム上許容できないレスポンス時間を設定しておくことで、ログファイルから、遅延が発生した「スロークエリ」を把握できるようになります。

設定方法(Linux系システムの場合)

  • 1:PostgreSQLをインストールしたOSユーザーに接続
# su - <PostgreSQLをインストールしたOSユーザー名>
  • 2:「PGDATA/postgresql.conf」を開き、log_min_duration_statementの値に許容できないレスポンス時間(単位はミリ秒)を設定する
  • 3:PostgreSQLをリロードする
$ pg_ctl reload

設定方法(Windows系システムの場合)

  • 1:PostgreSQLをインストールしたOSユーザー、あるいはAdministratorユーザーでログインする
  • 2:「PGDATA/postgresql.conf」を開き、log_min_duration_statementの値に許容できないレスポンス時間(単位はミリ秒)を設定する
  • 3:PostgreSQLをリロードする
> pg_ctl reload

ログファイルの出力例

 log_min_duration_statementの値を「10000」と設定し、10秒以上かかるSQLを実行した際に出力されたログファイルの内容を示します(例3)。

[2015-08-30 21:28:20 JST] 2727[6]LOG: parameter "log_min_duration_statement" changed to "10000"
[2015-08-30 21:29:26 JST]testuser postgres 17060[1]LOG: duration: 63122.171 ms statement: select * from pgbench_accounts where aid>5000; <--
例3 「log_min_duration_statement=10000」と設定した状態で10秒以上かかるSQL実行時に出力されたログファイルの内容
2行目:
・検出時刻:2015-08-30 21:29:26
・処理を実行したユーザー名:testuser
・接続先データベース名:postgres
・OSのPID:17060
・PID 17060に関連するメッセージ1:LOG: duration: 63122.171 ms statement: select * from pgbench_accounts where aid>5000;
・スロークエリ:select * from pgbench_accounts where aid>5000;
・所要時間:63122.171 ms(約63秒)

 このように、ログファイルからスロークエリを確認できるようになります。

 この情報は、「スロークエリで参照するテーブルの統計情報が最新であるか」や「EXPLAIN ANALYZE <スロークエリ>コマンドを使用して適切な実行計画で処理が行われているか」など、ボトルネックの改善対処に役立つでしょう。

まとめ

 今回は、PostgreSQLの障害発生に備えて設定しておくべきパラメータとして、「logging_collector」「log_line_prefix」「log_min_duration_statement」を紹介しました。これらを設定しておくことで、障害発生時の状況把握や問題解決がスムーズになります。ぜひこれを機に設定の有無を確認してください。

 なお、今回紹介したパラメータ以外にもPostgreSQLの状況把握に役立つログ関連パラメータは複数存在します。興味のある方はPostgreSQLマニュアル 「エラー報告とログ取得」の章も併せて参照するようにしてください。


筆者紹介

家島拓也

2007年アシスト入社。オラクル製品やPostgreSQL/EDB Postgres製品のサポートに従事。最前線のサポート対応で得た知識や知見を元に、顧客が困ることの多い問題/課題や各製品の新機能に関する検証結果に関する情報発信も行っている


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。