Help us learn about your current experience with the documentation. Take the survey.

计算分钟数

  • 等级:Free, Premium, Ultimate
  • 提供方式:GitLab.com, GitLab Self-Managed, GitLab Dedicated

运行 CI/CD 作业的项目使用实例运行器(instance runners)的用量以计算分钟数(compute minutes)来衡量。

对于某些安装类型,你的 命名空间(namespace) 拥有一个 计算配额(compute quota), 这限制了你可以使用的可用计算分钟数。

计算配额可以应用于所有 管理员管理的实例运行器(admin-managed instance runners)

  • GitLab.com 或 GitLab Self-Managed 上的所有实例运行器
  • GitLab Dedicated 上的所有自托管实例运行器

计算配额默认是禁用的,但可以为顶级组和用户命名空间启用。 在 GitLab.com 上,配额默认启用以限制 Free 命名空间的使用。如果购买了付费订阅,限制会增加。

GitLab Dedicated 上的 GitLab 托管实例运行器不能应用实例运行器计算配额。

实例运行器(Instance runners)

对于 GitLab.com、GitLab Self-Managed 上的实例运行器,以及 GitLab Dedicated 上的自托管实例运行器:

  • 你可以在 实例运行器使用仪表板 中查看你的使用情况。
  • 当配额启用时:
    • 当接近配额限制时,你会收到通知。
    • 当超出配额时,会执行强制措施。

对于 GitLab.com:

计算分钟数使用情况

计算使用量计算

每个作业的计算分钟数使用量使用以下公式计算:

作业持续时间 / 60 * 成本系数
  • 作业持续时间(Job duration):作业运行的时间(以秒为单位),不包括处于 createdpending 状态的时间。
  • 成本系数(Cost factor):基于 运行器类型项目类型 的数字。

该值被转换为计算分钟数,并添加到作业顶级命名空间的使用单位计数中。

例如,如果用户 alice 运行一个流水线:

  • gitlab-org 命名空间中的项目中,流水线中每个作业使用的计算分钟数 会添加到 gitlab-org 命名空间的总体使用量中,而不是 alice 命名空间。
  • 在他们 alice 命名空间中的个人项目中,计算分钟数会添加 到他们命名空间的总体使用量中。

一个流水线使用的计算量是流水线中所有作业使用的总计算分钟数。 作业可以并发运行,因此总计算使用量可能高于流水线的端到端持续时间。

触发作业(Trigger jobs) 不在运行器上执行,因此它们不 消耗计算分钟数,即使使用 strategy:depend 来等待 下游流水线(downstream pipeline) 状态也是如此。 触发的下游流水线与其他流水线一样消耗计算分钟数。

使用情况按月跟踪。每月第一天,所有命名空间的使用量都为 0

成本系数

计算分钟数的消耗速率根据运行器类型和项目设置而有所不同。

GitLab.com 托管运行器的成本系数

GitLab 托管的运行器根据运行器类型(Linux、Windows、macOS)和虚拟机配置有不同的成本系数:

运行器类型 机器大小 成本系数
Linux x86-64 (默认) small 1
Linux x86-64 medium 2
Linux x86-64 large 3
Linux x86-64 xlarge 6
Linux x86-64 2xlarge 12
Linux x86-64 + GPU 启用 medium, GPU 标准 7
Linux Arm64 small 1
Linux Arm64 medium 2
Linux Arm64 large 3
macOS M1 medium 6 (状态: Beta)
macOS M2 Pro large 12 (状态: Beta)
Windows medium 1 (状态: Beta)

这些成本系数适用于 GitLab.com 的托管运行器。

根据项目类型适用某些折扣:

项目类型 成本系数 计算分钟数使用
标准项目 基于运行器类型 1 分钟每 (作业持续时间 / 60 × 成本系数)
GitLab for Open Source program 中的公共项目 0.5 1 分钟每 2 分钟作业时间
GitLab Open Source program projects 的公共分支 0.008 1 分钟每 125 分钟作业时间
对 GitLab 项目的社区贡献 动态折扣 见下节

对 GitLab 项目的社区贡献

社区贡献者在向 GitLab 维护的开源项目贡献时,可以在实例运行器上使用最多 300,000 分钟。只有在专门贡献属于 GitLab 产品的项目时,才能达到 300,000 分钟的最大值。

实例运行器上可用的总分钟数会因其他项目的流水线使用的计算分钟数而减少。300,000 分钟适用于所有 GitLab.com 等级。

成本系数计算为:

  • 月度计算配额 / 300,000 作业持续时间分钟数 = 成本系数

例如,在 Premium 等级中,月度计算配额为 10,000:

  • 10,000 / 300,000 = 0.03333333333 成本系数。

对于此降低的成本系数:

  • 合并请求源项目必须是 GitLab 维护项目的分支, 例如 gitlab-com/www-gitlab-com, 或 gitlab-org/gitlab
  • 合并请求目标项目必须是分支的父项目。
  • 流水线必须是合并请求、合并结果或合并流水线。

减少计算分钟数使用

如果你的项目消耗了太多计算分钟数,尝试这些策略来减少你的使用量:

如果你管理开源项目,这些改进也可以减少贡献者分支项目的计算分钟数使用, 从而实现更多贡献。

有关更多详细信息,请参阅 流水线效率指南