doc/ci/pipelines/compute_minutes.md
{{< details >}}
{{< /details >}}
{{< history >}}
{{< /history >}}
The usage of instance runners by projects running CI/CD jobs is measured in compute minutes.
For some installation types, your namespace has a compute quota, which limits the available compute minutes you can use.
A compute quota can be applied to all admin-managed instance runners:
The compute quota is disabled by default but can be enabled for top-level groups and user namespaces. On GitLab.com, the quota is enabled by default to limit usage on Free namespaces. The limit is increased if a paid subscription is purchased.
GitLab-hosted instance runners on GitLab Dedicated cannot have the instance runner compute quota applied.
For instance runners on GitLab.com, GitLab Self-Managed, and self-hosted instance runners on GitLab Dedicated:
For GitLab.com:
Your compute minute usage for each job is calculated using this formula:
Job duration / 60 * Cost factor
created or pending statuses.The value is converted into compute minutes and added to the count of used units in the job's top-level namespace.
For example, if a user alice runs a pipeline:
gitlab-org namespace, the compute minutes used by each job in the pipeline are
added to the overall usage for the gitlab-org namespace, not the alice namespace.alice namespace, the compute minutes are added
to the overall usage for their namespace.The compute used by one pipeline is the total compute minutes used by all the jobs that ran in the pipeline. Jobs can run concurrently, so the total compute usage can be higher than the end-to-end duration of a pipeline.
Trigger jobs do not execute on runners, so they do not
consume compute minutes, even when using strategy:depend
to wait for the downstream pipeline status.
The triggered downstream pipeline consumes compute minutes the same as other pipelines.
Usage is tracked on a monthly basis. On the first day of the month the usage is 0 for that month for all namespaces.
The rate at which compute minutes are consumed varies based on the runner type and project settings.
GitLab-hosted runners have different cost factors depending on the runner type (Linux, Windows, macOS) and the virtual machine configuration:
| Runner type | Machine size | Cost factor |
|---|---|---|
| Linux x86-64 (default) | 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-enabled | medium, GPU standard | 7 |
| Linux Arm64 | small | 1 |
| Linux Arm64 | medium | 2 |
| Linux Arm64 | large | 3 |
| macOS M1 | medium | 6 (Status: Beta) |
| macOS M2 Pro | large | 12 (Status: Beta) |
| Windows | medium | 1 (Status: Beta) |
These cost factors apply to hosted runners for GitLab.com.
Certain discounts apply based on the project type:
| Project type | Cost factor | Compute minutes used |
|---|---|---|
| Standard projects | Based on runner type | 1 minute per (job duration / 60 × cost factor) |
| Public projects in GitLab for Open Source program | 0.5 | 1 minute per 2 minutes of job time |
| Public forks of GitLab Open Source program projects | 0.008 | 1 minute per 125 minutes of job time |
| Community contributions to GitLab projects | Dynamic discount | See the following section |
Community contributors can use up to 300,000 minutes on instance runners when contributing to open source projects maintained by GitLab. The maximum of 300,000 minutes would only be possible if contributing exclusively to projects part of the GitLab product.
The total number of minutes available on instance runners is reduced by the compute minutes used by pipelines from other projects. The 300,000 minutes applies to all GitLab.com tiers.
The cost factor calculation is:
Monthly compute quota / 300,000 job duration minutes = Cost factorFor example, with a monthly compute quota of 10,000 in the Premium tier:
For this reduced cost factor:
gitlab-com/www-gitlab-com,
or gitlab-org/gitlab.If your project consumes too many compute minutes, try these strategies to reduce your usage:
rules
to make it only run when it's needed.If you manage an open source project, these improvements can also reduce compute minute usage for contributor fork projects, enabling more contributions.
See the pipeline efficiency guide for more details.