4. 容量水位关键指标
镜像供应链的容量水位直接决定了制品分发的稳定性与响应延迟。在巡检过程中,运维人员需要聚焦四个核心指标:存储使用率、拉取/推送 QPS、并发连接数以及镜像层缓存命中率。这四个指标分别从存储容量、吞吐压力、连接复用效率与缓存加速效果四个维度刻画系统的健康状态。
4.1 存储使用率
存储使用率是镜像仓库最基础的容量指标,通常以百分比形式表示当前已用存储空间占总配额的比例。当存储使用率超过 85% 时,GC(垃圾回收)效率会显著下降,且写入操作可能因磁盘碎片化而变慢。
| 水位区间 | 风险等级 | 建议动作 |
|---|---|---|
| 0% – 60% | 安全 | 常规巡检,无需干预 |
| 60% – 80% | 关注 | 评估扩容计划,清理过期镜像 |
| 80% – 90% | 告警 | 立即触发 GC,限制非必要推送 |
| 90% – 100% | 严重 | 紧急扩容存储后端,暂停写入 |
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 分发 |
cache layer 并配置 Redis 作为缓存后端,可将热点镜像层的命中率从 40% 提升至 90% 以上。
4.5 四指标联动分析
单一指标无法全面反映容量水位,必须进行联动分析。例如:存储使用率正常但拉取 QPS 突增,可能触发并发连接数上限;缓存命中率下降会直接导致存储 IO 和拉取延迟上升。下图展示了四个指标之间的典型影响关系。
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 分钟聚合一次,用于缓存策略调优。
通过上述四个关键指标的持续巡检与联动分析,运维团队可以精准定位镜像供应链的容量瓶颈,为后续的多集群同步参数调优提供数据支撑。