Postgres サーバーのディスク不足

症状

分析データが保存されている Postgres サーバーの空き容量が不足しています。

次の例では、/u01 のディスク使用率が 90%(176 GB / 207 GB)に達しています。

    /u01/app/apigee/data/apigee-postrgresql/pgdata/base/
    $df -g

    Filesystem Size User Avail Use% Mounted on
    /dev/mapper/sysvg-syslv09 207G 176G 176G 21G 90% /u01
    

エラー メッセージ

Postgres サーバーの空き容量が完全になくならない限り、エラー メッセージは表示されません。

考えられる原因

この問題で考えられる原因は次のとおりです。

原因 対象
ディスク容量が不足している Edge Private Cloud ユーザー
分析データのプルーニングが行われていない Edge Private Cloud ユーザー

ディスク容量が不足している

診断

Postgres サーバーのディスク容量エラーが発生した場合、よくある原因の一つはディスク容量の不足です。大量の分析データを保存するのに十分な容量が割り当てられていないため、この問題が発生しています。以下の手順に従って、十分なディスク容量が確保されているかどうか確認し、適切な処置を講じて問題を解決してください。

  1. [Analytics Proxy Performance] ダッシュボードで、Edge での API 受信トラフィックの発生率を確認します。

    TPS の平均値を示すプロキシ パフォーマンスの例

  2. 次のシナリオで考えてみましょう。
    1. 組織の API 受信トラフィックが 22 TPS(トランザクション/秒)とします。
      1. この場合、1 日あたりの API トラフィックは 1,900,800 トランザクションとなります(22 * 60 * 60 * 24)。
      2. 分析では、メッセージあたりの 1 トランザクションのサイズは 1.5K バイトになります。
      3. したがって、毎日 2.7 GB の分析データが生成されることになります(1,900,800 * 1.5 K)。
    2. また、分析データは Postgres サーバーに 30 日間保存しなければならないとします。
      1. 30 日間で生成されるデータの合計量は 81 GB(2.7 GB * 30)になります。
    3. したがって、トラフィック率が 22 TPS の分析データを 30 日間保存するには、150 GB のディスク容量が必要になります。
      1. 81 GB(分析データ) + 50 GB(ログなどの他のデータ) + 20 GB(追加のバッファ容量) = 150 GB
  3. システムのディスク容量が少ない場合(上の例では 150 GB 未満)、分析データの保存に十分なディスク容量がありません。

解決策

Postgres サーバマシンに十分なディスク容量を追加します。

分析データのプルーニングが行われていない

診断

Edge に対する API トラフィックが増加すると、Postgres データベースに保存される分析データの量も増加します。Postgres データベースに保存できる分析データの量は、システムで使用可能なディスク容量によって制限されます。

Postgres データベースに引き続き分析データを保存するには、次のいずれかのアクションを行う必要があります。

  1. ディスク容量を増やす。

    制限やコストを考えると、ディスク容量を追加し続けることはできません。これはスケーラブルなオプションではありません。

  2. 必要な保存期間を過ぎたデータをプルーニングする。

    不要になったデータを一定の間隔で削除します。これは推奨の解決策です。

手動または cron ジョブでデータを定期的にプルーニングしないと、分析データが増え続け、最後にはシステムのディスク容量が不足します。

解決策

必要な保存期間を過ぎたデータをプルーニングするには:

  1. 分析データを Postgres データベースに保存する期間を決めます。

    たとえば、分析データの保存期間を 60 日に設定します。

  2. 次のコマンドを実行して、特定の組織と環境のデータをプルーニングします。
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql pg-data-purge
          org env num_days_to_purge_back_from_current_date
        
  3. 詳しくは、分析データのプルーニングをご覧ください。

問題が解決しない場合は、Apigee サポートにご連絡ください。