2. 缓存命中率核心指标

缓存命中率是衡量 Nexus Repository 代理缓存效率最直接的量化指标。理解其定义、区分不同维度的命中率、并掌握在 Nexus UI 中的查看方法,是调优工作的第一步。

2.1 缓存命中率(Hit Ratio)定义

缓存命中率指用户或构建工具从代理仓库请求制品时,该制品在本地缓存中已存在(即“命中”),无需回源到远程仓库下载的比例。其基本计算公式为:

缓存命中率 = (缓存命中次数 / 总请求次数) × 100%

命中率越高,说明代理缓存越有效,网络延迟和远程仓库负载越低,构建速度越快。

调优目标参考:对于稳定的生产环境,代理缓存命中率通常应维持在 85% - 95% 以上。低于 70% 时,需要检查缓存策略、TTL 设置或请求模式。

2.2 字节命中率 vs 请求命中率

Nexus 在统计命中率时,存在两个核心维度:请求命中率(Request Hit Ratio) 和 字节命中率(Byte Hit Ratio)。两者反映不同的缓存效率侧面,不能混用。

指标 定义 计算公式 关注点 典型场景
请求命中率 按 HTTP 请求次数统计的命中比例 命中请求数 / 总请求数 × 100% 请求频率、小文件缓存效果 大量小体积 POM、metadata 文件
字节命中率 按传输字节数统计的命中比例 命中字节数 / 总请求字节数 × 100% 带宽节省、大文件缓存效果 大型 JAR、WAR、Docker 镜像层
关键区别:请求命中率高但字节命中率低,说明缓存了大量小文件,但大文件频繁回源;反之,字节命中率高但请求命中率低,说明大文件缓存效果好,但大量小文件未命中。调优时需要同时关注两个指标,不能只看单一维度。

2.3 通过 Nexus UI 查看命中率

Nexus Repository Manager 3 提供了内置的监控页面,可以直观查看代理仓库的缓存命中率。操作路径如下:

  1. 登录 Nexus 管理后台,进入 Administration → System → Monitoring → Performance。
  2. 在 Repository Performance 区域,选择需要查看的代理仓库(如 maven-central-proxy)。
  3. 页面会展示该仓库的 Request Hit Ratio 和 Byte Hit Ratio 实时数据及历史趋势图。
注意:Nexus 默认只保留最近 7 天的性能数据。如果需要长期趋势分析,建议配置外部监控系统(如 Prometheus + Grafana)或定期导出指标。

以下示意图展示了 Nexus UI 中命中率查看页面的核心布局:

Nexus UI 命中率查看页面布局示意 Administration System Monitoring Performance Logging Health Check Repository Performance maven-central-proxy Request Hit Ratio 92.3% 命中: 12,450 / 总: 13,490 Byte Hit Ratio 78.6% 命中: 2.1 GB / 总: 2.7 GB 7-Day Trend Request Byte 提示:点击趋势图可查看每日详细数据,支持导出 CSV。

2.4 指标解读与调优方向

通过对比请求命中率和字节命中率,可以快速定位缓存策略的薄弱环节:

  • 双高(>90%):缓存策略健康,维持现有配置即可。
  • 请求命中率高,字节命中率低:小文件缓存好,但大文件(如二进制库、Docker 层)频繁回源。应检查大文件的 TTL 设置或考虑增加缓存磁盘空间。
  • 请求命中率低,字节命中率高:大文件缓存有效,但大量小文件(如 POM、metadata)未命中。应检查元数据缓存策略或清理过期索引。
  • 双低(<70%):缓存基本失效。需检查网络连通性、远程仓库状态、缓存存储路径是否写满、TTL 是否过短。
实战建议:在调优初期,优先关注 字节命中率,因为它直接反映带宽节省和构建加速效果。请求命中率作为辅助参考,用于发现小文件缓存问题。