アプリケーションのレスポンスが一定時間おきに遅延する事象について

Enterprise Postgres の技術情報はこちら

一定時間の間隔で業務アプリケーションのレスポンスが悪くなるタイミングがあります。
原因と対処方法を教えてください。
[原因]
pg_stat_statementsの動作が原因の可能性があります。
pg_stat_statementsはSQL文情報を外部ファイル(pg_stat_tmp/pgss_query_texts.stat)に追記で格納しており、外部ファイルのサイズが肥大化してくるとサイズ削減のために不要データを削除する処理が動作します。
この処理中はディスクI/Oを伴い、かつ、pg_stat_statementsの排他ロックを取得するため、動作中の他のトランザクションでロック待ちが発生し、レスポンスが悪化する場合があります。
不要データの削除のタイミングはpg_stat_statements.maxパラメータに指定した件数と、実行されたSQL文の平均長によって決まります。

[対処方法]
pg_stat_statements.maxパラメータを小さくし、1回の不要データの削除処理に要する時間を削減するチューニングを検討してください。
または、定期的にpg_stat_statements_reset()関数を実行し、外部ファイルの初期化を実施してください。

pg_stat_statements.maxパラメータ、pg_stat_statements_reset()関数の詳細は、以下のマニュアルを参照してください。
 Fujitsu Enterprise Postgres 16 SP1
  PostgreSQL 16.4 Documentation
   Part VIII. Appendixes
    Appendix F. Additional Supplied Modules and Extensions
     F.32. pg_stat_statements

なお記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス情報
対象製品Enterprise Postgres
プラットフォームWindows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ