Postgres 服务器磁盘空间不足

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

问题

包含 Google 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 用户
缺乏 Google Analytics(分析)数据剪枝 Edge Private Cloud 用户

磁盘可用空间不足

诊断

Postgres Servers 上出现磁盘空间错误的一个常见原因是,您没有足够的磁盘空间来存储大量分析数据。以下步骤将帮助您确定您是否有足够的磁盘空间,并采取适当的措施来解决此问题。

  1. 参考 Analytics 代理性能信息中心,确定 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 的 Google Analytics(分析)数据(1, 900,800 * 1,500)。
    2. 您需要在 Postgres 服务器上保留 30 天的 Analytics 数据以供参考。
      1. 30 天生成的数据总量 = 81GB (2.7GB * 30)
    3. 因此,要以 22 TPS 的流量速率存储 30 天的 Google Analytics(分析)数据,您需要有 150 GB 的磁盘空间。
      1. 81GB(Analytics 数据)+ 50GB(日志等等其他数据)+ 20GB(额外缓冲区空间)= 150GB。
  3. 如果您的系统磁盘空间不足,即小于 150 GB(根据上面的示例场景),则表示您没有足够的磁盘空间来存储 Google Analytics(分析)数据。

分辨率

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

缺乏 Google Analytics(分析)数据剪枝

诊断

随着 Edge 的 API 流量增加,存储在 Postgres 数据库中的分析数据量也将增加。可存储在 Postgres 数据库中的分析数据量取决于系统上可用的磁盘空间量。

因此,如果不执行以下操作之一,您将无法继续在 Postgres 数据库中存储额外的分析数据:

  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。默认值:否。如果否,脚本将在从父级事实中删除数据之前提示您进行确认。如果完全清除脚本是自动执行的,请将此属性设为“是”。

如需了解详情,请参阅剪除 Google Analytics(分析)数据

如果问题仍然存在,请与 Apigee Edge 支持团队联系。