アプリケーションのレスポンスが一定時間おきに遅延する事象について
Enterprise Postgresのよくあるご質問を検索できます。
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
なお記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス情報 |
|
||||
---|---|---|---|---|---|
アンサー種別 | 運用/保守 |