Postgres 伺服器磁碟空間不足

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

問題

含有 Analytics 資料的 Postgres 伺服器磁碟空間已用盡。

在下列範例中,您可以看到磁碟 /u01 已填滿 90% 的磁碟空間 (176 GB/207 GB)。

$df -g

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

錯誤訊息

除非 Postgres 伺服器上的磁碟空間完全填滿,否則您可能不會看到任何錯誤訊息。

可能原因

下表列出這個問題的可能原因:

原因 適用於
磁碟空間不足 Edge Private Cloud 使用者
未修剪 Analytics 資料 Edge Private Cloud 使用者

磁碟空間不足

診斷

Postgres 伺服器發生磁碟空間錯誤的常見原因之一,是磁碟空間不足,無法儲存大量分析資料。請按照下列步驟操作,判斷磁碟空間是否充足,並採取適當行動來解決問題。

  1. 請參閱 Analytics Proxy 效能資訊主頁,判斷傳送至 Edge 的 API 流量速率。

    顯示平均 TPS 的 Proxy 效能範例

  2. 請參考下列情境:
    1. 貴機構的 API 傳入流量為 22 TPS (每秒交易數)。
      1. 也就是說,API 流量為每天 1,900,800 筆交易 (22 * 60 * 60 * 24)。
      2. 請注意,Analytics 中的每筆交易/訊息大小為 1.5 KB。
      3. 因此,每天會產生 2.7 GB 的 Analytics 資料 (1,900,800 * 1.5 K)。
    2. 您必須在 Postgres 伺服器上保留 30 天的 Analytics 資料,以供參考。
      1. 30 天產生的總資料量 = 81 GB (2.7 GB * 30)
    3. 因此,如要儲存 30 天的 Analytics 資料,且流量速率為 22 TPS,您需要 150 GB 的磁碟空間。
      1. 81 GB (Analytics 資料) + 50 GB (記錄等其他資料) + 20 GB (額外緩衝空間) = 150 GB。
  3. 如果系統的磁碟空間不足 (即空間少於 150 GB,如上述範例情境所示),則您沒有足夠的磁碟空間來儲存 Analytics 資料。

解析度

在 Postgres 伺服器機器上新增足夠的磁碟空間。

未修剪 Analytics 資料

診斷

隨著 Edge 的 API 流量增加,儲存在 Postgres 資料庫的分析資料量也會增加。Postgres 資料庫可儲存的分析資料量,取決於系統可用的磁碟空間量。

因此,如未採取下列任一行動,您將無法繼續在 Postgres 資料庫中儲存額外的 Analytics 資料:

  1. 增加磁碟空間。

    這不是可擴充的選項,因為我們無法持續新增更多磁碟空間,而且這類空間有限且價格高昂。

  2. 刪除超過必要保留間隔的資料。

    這是較好的解決方案,因為您可以確保系統定期移除不再需要的資料。

如果您未定期手動或使用 cron 工作修剪資料,分析資料量就會持續增加,最終導致系統磁碟空間不足。

解析度

如要修剪超出必要保留間隔的資料,請按照下列步驟操作:

  1. 決定保留間隔,也就是您要在 Postgres 資料庫中保留 Analytics 資料的時間長度。
  2. 執行下列指令,修剪特定機構和環境的資料:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql pg-data-purge
      org env number_of_days_to_retain [Delete-from-parent-fact - N/Y] [Skip-confirmation-prompt - N/Y]
    

指令碼提供下列選項:

  • Delete-from-parent-fact 預設值:否。系統也會從父項事實資料表刪除保留天數前的資料。
  • Skip-confirmation-prompt。預設值為「否」。如果選取「否」,指令碼會先提示確認,再從父事實中刪除資料。如果清除指令碼是自動執行,請設為「是」。

詳情請參閱「修剪 Analytics 資料」。

如果問題仍未解決,請與 Apigee Edge 支援團隊聯絡。