Postgres 服务器磁盘空间不足

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

问题

包含 Analytics 数据的 Postgres 服务器磁盘空间不足。

在以下示例中,您可以看到磁盘 /u01 已占用 90% 的磁盘空间 (176GB/207GB)。

$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. 通过查看“分析代理性能”信息中心,确定进入 Edge 的 API 流量速率。

    显示平均 TPS 的代理性能示例

  2. 请考虑以下情形:
    1. 您组织的入站 API 流量为 22 TPS(每秒事务数)。
      1. 这意味着 API 流量为每天 1,900,800 笔交易(22 * 60 * 60 * 24)。
      2. 请注意,Google Analytics 中的每笔交易/消息的大小为 1.5K 字节。
      3. 因此,每天会生成 2.7GB 的分析数据(1,900,800 * 1.5 K)。
    2. 您需要将 30 天的 Google Analytics 数据保留在 Postgres 服务器上以供参考。
      1. 30 天内生成的数据总量 = 81GB(2.7GB * 30)
    3. 因此,若要以 22 TPS 的流量速率存储 30 天的 Google Analytics 数据,您需要 150 GB 的磁盘空间。
      1. 81GB(Google Analytics 数据)+ 50GB(其他数据,例如日志等)+ 20GB(额外缓冲空间)= 150GB。
  3. 如果系统上的磁盘空间较小(即少于 150 GB,如上述示例方案所示),则您没有足够的磁盘空间来存储 Google Analytics 数据。

分辨率

为 Postgres 服务器机器添加足够的磁盘空间。

未进行 Analytics 数据清理

诊断

随着 Edge 的 API 流量增加,存储在 Postgres 数据库中的分析数据量也会增加。Postgres 数据库中可存储的分析数据量受系统上可用磁盘空间量的限制。

因此,如果不采取以下任一措施,您将无法继续在 Postgres 数据库中存储额外的分析数据:

  1. 添加更多磁盘空间。

    这不是一个可扩缩的选项,因为我们无法不断添加更多磁盘空间,这会受到限制且成本高昂。

  2. 剪除超出所需保留时间间隔的数据。

    这是首选解决方案,因为您可以确保不再需要的数据会定期移除。

如果您不定期手动或使用 cron 作业剪除数据,分析数据的量就会不断增加,最终可能会导致系统磁盘空间不足。

分辨率

如需剪除超出所需保留时间间隔的数据,请执行以下操作

  1. 确定保留间隔,即您希望在 Postgres 数据库中保留 Google 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 支持团队联系。