PostgreSQL の一時ファイルログの範囲の確認

PostgreSQL の一時ファイルログのサイズ基準を運用目的に合わせ、ログ量とアクセス権限を確認してください。

説明

Cloud SQL for PostgreSQL の log_temp_files は、ログに記録する一時ファイルの最小サイズを指定します。-1 は記録を無効にし、0 はすべての一時ファイルを記録します。正の値は KB 単位の最小サイズです。したがって、1 は記録を無効にする値ではなく、1 KB 以上の一時ファイルを記録する基準です。

一時ファイルが削除されると、その名前とサイズがログに記録されます。非効率なクエリやディスク使用量の増加を調べる際に役立ちますが、一時ファイルの内容自体を記録する機能ではありません。

想定される影響

  • 記録が無効である場合やサイズ基準が高すぎる場合、性能問題の調査に必要な記録が不足する可能性があります。
  • すべての一時ファイルを記録すると、ワークロードによってはログ量や処理コストが増加します。

対処方法

  • すべての一時ファイルの記録が必要なら、settings.database_flags の log_temp_files を 0 に設定してください。大きなファイルだけを調べる場合は、適切な正の値を指定してください。
  • 他の PostgreSQL ログ設定と併せて、運用目的に合っているか確認してください。
  • 変更後のログと性能への影響を確認し、ログのアクセス権限と保持期間を管理してください。

google.cloud 1.14.0 の SQL モジュールは既存インスタンスの更新に対応していません。以下は作成用の例です。既存インスタンスのフラグは、対応する Cloud SQL ツールや API で変更してください。

例

サポート対象の PostgreSQL バージョンとインスタンスのマシンタイプ、実際のプロジェクト名とリソース名、サービスアカウントの JSON ファイルを使用してください。以下はログの基準を比較する設定の抜粋です。

変更前

yaml
- name: Cloud SQL 인스턴스 생성
  google.cloud.gcp_sql_instance:
    auth_kind: serviceaccount
    database_version: POSTGRES_13
    name: "{{ resource_name }}-2"
    project: test_project
    region: us-central1
    service_account_file: /tmp/auth.pem
    settings:
      database_flags:
        - name: log_temp_files
          value: 1
      tier: db-custom-1-3840
    state: present

log_temp_files: 1 は 1 KB 以上の一時ファイルを記録します。それより小さいファイルの記録が必要かどうかに応じて判断してください。

変更後

yaml
- name: Cloud SQL 인스턴스 생성
  google.cloud.gcp_sql_instance:
    auth_kind: serviceaccount
    database_version: POSTGRES_13
    name: "{{ resource_name }}-2"
    project: test_project
    region: us-central1
    service_account_file: /tmp/auth.pem
    settings:
      database_flags:
        - name: log_temp_files
          value: 0
      tier: db-custom-1-3840
    state: present

log_temp_files: 0 はすべての一時ファイルを記録します。記録範囲が広がるため、実際のログ量も確認してください。

参考資料