跳转至

Prometheus 资源规划

Prometheus 在实际使用过程中,受到集群容器数量以及开启 Istio 的影响,会导致 Prometheus 的 CPU、内存等资源使用量超出设定的资源。

为了保证不同规模集群下 Prometheus 的正常运行,需要根据集群的实际规模对 Prometheus 进行资源调整。

参考资源规划

在未开启网格情况下,测试情况统计出系统 Job 指标量与 Pod 的关系为 Series 数量 = 800 * Pod 数量

在开启服务网格时,开启功能后 Pod 产生的 Istio 相关指标数量级为 Series 数量 = 768 * Pod 数量

当未开启服务网格时

以下资源规划为 未开启服务网格 场景下,Prometheus 的资源规划推荐:

集群规模(Pod 数) 指标量(未开启服务网格) CPU(core) 内存(GB)
100 8w Request: 0.5
Limit:1
Request:2GB
Limit:4GB
200 16w Request:1
Limit:1.5
Request:3GB
Limit:6GB
300 24w Request:1
Limit:2
Request:3GB
Limit:6GB
400 32w Request:1
Limit:2
Request:4GB
Limit:8GB
500 40w Request:1.5
Limit:3
Request:5GB
Limit:10GB
800 64w Request:2
Limit:4
Request:8GB
Limit:16GB
1000 80w Request:2.5
Limit:5
Request:9GB
Limit:18GB
2000 160w Request:3.5
Limit:7
Request:20GB
Limit:40GB
3000 240w Request:4
Limit:8
Request:33GB
Limit:66GB

当开启服务网格功能时

以下资源规划为 开启服务网格 场景下,Prometheus 的资源规划推荐:

集群规模(Pod 数) 指标量(已开启服务网格) CPU(core) 内存(GB)
100 15w Request: 1
Limit:2
Request:3GB
Limit:6GB
200 31w Request:2
Limit:3
Request:5GB
Limit:10GB
300 46w Request:2
Limit:4
Request:6GB
Limit:12GB
400 62w Request:2
Limit:4
Request:8GB
Limit:16GB
500 78w Request:3
Limit:6
Request:10GB
Limit:20GB
800 125w Request:4
Limit:8
Request:15GB
Limit:30GB
1000 156w Request:5
Limit:10
Request:18GB
Limit:36GB
2000 312w Request:7
Limit:14
Request:40GB
Limit:80GB
3000 468w Request:8
Limit:16
Request:65GB
Limit:130GB

Note

  1. 表格中的 Pod 数量 指集群中基本稳定运行的 Pod 数量,如出现大量的 Pod 重启,则会造成短时间内指标量的陡增,此时资源需要进行相应上调。
  2. Prometheus 内存中默认保存两小时数据,且集群中开启了 Remote Write 功能时,会占用一定内存,资源超配比建议配置为 2。
  3. 表格中数据为推荐值,适用于通用情况。如环境有精确的资源要求,建议在集群运行一段时间后,查看对应 Prometheus 的资源占用量进行精确配置。