SparkCR Docs

缓存与用量

理解 SparkCR 的缓存命中、冷启动、配额和拉取历史。

缓存与用量

首次拉取通常需要从原始镜像仓库下载内容,后续拉取可能因已有缓存而更快。DashboardHistory 和响应头可以帮助你判断拉取是否命中缓存。

缓存状态

拉取历史和响应头中的缓存状态通常有这些含义:

状态含义
HIT命中缓存。
MISS本次内容尚未缓存。
EXPIRED已有缓存需要更新。
BYPASS本次未使用缓存。

同一张镜像包含多个文件,不同文件可能显示不同的缓存状态。因此,即使部分请求已经命中缓存,整个镜像拉取仍可能需要等待下载。

为什么第一次拉取较慢

第一次拉取一张镜像时,SparkCR 需要访问原始镜像仓库获取内容。这个过程受网络、原始仓库限流和镜像大小影响。

后续拉取可能更快,原因包括:

  • 所需内容已经在缓存中。
  • 命中缓存后减少了对原始镜像仓库的请求。

配额与限流

SparkCR 会根据是否登录、账号套餐和访问网络应用配额或限制。匿名拉取可用,但共享出口 IP 的 CI、NAT 或集群更容易触发匿名配额。

建议:

  • 长期使用时登录 SparkCR 镜像仓库。
  • CI 为每个项目或 runner 创建独立 Access Token
  • 公共镜像只授予 pull:public
  • 私有镜像按需授予 pull:privatepush
  • 降低同一时间的大规模并发冷拉取。

收到 429 Too Many Requests 时,检查 控制台 中的今日用量和响应里的 X-RateLimit-* 头。

查看用量

在控制台中优先查看:

页面用途
Dashboard当前配额、总请求、流量和缓存命中率。
History最近拉取记录、来源仓库、镜像、状态码、缓存状态和字节数。
Private Registries私有镜像仓库的拉取和推送用量。

排查问题时保留这些信息:

  • 完整镜像引用。
  • runtime 类型和版本。
  • SparkCR 访问模式:路径前缀或别名入口。
  • HTTP 状态码和错误信息。
  • X-SparkCR-CacheX-RateLimit-* 响应头。
  • 对应的拉取历史或私有镜像仓库用量记录。

On this page