4. 容量水位关键指标

镜像供应链的容量水位直接决定了制品分发的稳定性与响应延迟。在巡检过程中,运维人员需要聚焦四个核心指标:存储使用率、拉取/推送 QPS、并发连接数以及镜像层缓存命中率。这四个指标分别从存储容量、吞吐压力、连接复用效率与缓存加速效果四个维度刻画系统的健康状态。

巡检基线建议:在制定容量水位阈值时,建议以集群峰值负载的 1.5 倍作为告警上限,避免因突发流量导致镜像拉取超时或节点驱逐。

4.1 存储使用率

存储使用率是镜像仓库最基础的容量指标,通常以百分比形式表示当前已用存储空间占总配额的比例。当存储使用率超过 85% 时,GC(垃圾回收)效率会显著下降,且写入操作可能因磁盘碎片化而变慢。

水位区间 风险等级 建议动作
0% – 60% 安全 常规巡检,无需干预
60% – 80% 关注 评估扩容计划,清理过期镜像
80% – 90% 告警 立即触发 GC,限制非必要推送
90% – 100% 严重 紧急扩容存储后端,暂停写入
注意:存储使用率不能只看总量,还需关注每个存储桶或文件系统的 inode 使用率。inode 耗尽会导致无法创建新文件,即使磁盘空间仍有剩余。

4.2 拉取/推送 QPS

拉取 QPS(Pull QPS)与推送 QPS(Push QPS)分别衡量镜像仓库每秒处理的拉取和推送请求数量。这两个指标直接反映系统的吞吐能力,也是评估是否需要扩容或限流的关键依据。

  • 拉取 QPS 峰值:通常出现在大规模部署、滚动更新或 HPA 扩容场景。建议与集群节点数量、Pod 副本数联动监控。
  • 推送 QPS 峰值:常见于 CI/CD 流水线并发构建阶段。推送 QPS 过高会占用大量写入 IO,影响拉取响应。
  • QPS 与延迟的关系:当 QPS 超过系统设计上限时,P99 拉取延迟会呈指数级上升,此时需要启用限流或增加副本。
# 使用 PromQL 查询拉取 QPS 示例
sum(rate(registry_http_requests_total{method="GET", status=~"2.."}[5m])) by (instance)

4.3 并发连接数

并发连接数指同一时刻与镜像仓库建立 TCP 连接的数量。高并发连接会消耗大量文件描述符、内存和 CPU 上下文切换资源。常见的瓶颈点包括反向代理(Nginx/Envoy)的连接池大小、Registry 的 GOMAXPROCS 以及后端存储的 IO 队列深度。

关键调优参数:
  • REGISTRY_HTTP_MAX_CONNECTIONS:限制 Registry 最大并发连接数,默认 1000。
  • REGISTRY_STORAGE_MAX_QUEUE_SIZE:存储操作队列长度,默认 100。
  • sysctl net.core.somaxconn:操作系统级 TCP 连接积压队列,建议 ≥ 1024。

并发连接数过高时,客户端会收到 connection reset by peer 或 503 Service Unavailable 错误。巡检时应关注连接数的变化趋势,而非瞬时值,避免因短时毛刺触发误告警。

4.4 镜像层缓存命中率

镜像层缓存命中率是衡量缓存加速效果的核心指标,通常由中间件(如 Harbor、Dragonfly、P2P 代理)或本地 Registry 缓存层统计。高命中率意味着大部分镜像层可以从缓存直接返回,无需回源拉取,从而大幅降低存储 IO 和网络带宽消耗。

缓存命中率 加速效果 优化方向
≥ 95% 优秀 保持现有缓存策略
80% – 95% 良好 检查缓存淘汰策略,增大缓存容量
60% – 80% 一般 分析冷层来源,预热常用基础镜像
< 60% 差 重构缓存架构,考虑 P2P 分发
实践建议:在 Harbor 中开启 cache layer 并配置 Redis 作为缓存后端,可将热点镜像层的命中率从 40% 提升至 90% 以上。

4.5 四指标联动分析

单一指标无法全面反映容量水位,必须进行联动分析。例如:存储使用率正常但拉取 QPS 突增,可能触发并发连接数上限;缓存命中率下降会直接导致存储 IO 和拉取延迟上升。下图展示了四个指标之间的典型影响关系。

容量水位关键指标联动关系 存储使用率 磁盘 & inode 拉取/推送 QPS 吞吐 & 延迟 并发连接数 fd & 上下文 缓存命中率 加速 & 回源 IO 瓶颈 请求堆积 热点分布 GC 效率 连接复用 联动分析:存储使用率过高 → GC 变慢 → 缓存命中率下降 → 回源增加 → QPS 与并发连接数上升 → 系统雪崩

4.6 巡检数据采集与聚合

在实际巡检中,建议通过 Prometheus + Grafana 构建统一的容量水位看板。以下是一个推荐的指标采集清单:

# Prometheus 指标采集示例
- 存储使用率: registry_storage_usage_bytes / registry_storage_limit_bytes
- 拉取 QPS:     sum(rate(registry_http_requests_total{method="GET"}[5m]))
- 推送 QPS:     sum(rate(registry_http_requests_total{method="PUT"}[5m]))
- 并发连接数:   registry_http_connections_current
- 缓存命中率:   registry_cache_hit_total / (registry_cache_hit_total + registry_cache_miss_total)
巡检频率建议:
  • 存储使用率:每 5 分钟采集一次,每日生成趋势报告。
  • 拉取/推送 QPS:每 1 分钟采集一次,用于实时告警。
  • 并发连接数:每 30 秒采集一次,配合 HPA 自动扩缩。
  • 缓存命中率:每 10 分钟聚合一次,用于缓存策略调优。

通过上述四个关键指标的持续巡检与联动分析,运维团队可以精准定位镜像供应链的容量瓶颈,为后续的多集群同步参数调优提供数据支撑。