diff options
Diffstat (limited to 'doc/user/usage_quotas.md')
-rw-r--r-- | doc/user/usage_quotas.md | 137 |
1 files changed, 42 insertions, 95 deletions
diff --git a/doc/user/usage_quotas.md b/doc/user/usage_quotas.md index 305a46e1f15..7dea2b97249 100644 --- a/doc/user/usage_quotas.md +++ b/doc/user/usage_quotas.md @@ -5,7 +5,7 @@ group: Utilization info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Storage usage quota **(FREE ALL)** +# Storage **(FREE ALL)** Storage usage statistics are available for projects and namespaces. You can use that information to manage storage usage within the applicable quotas. @@ -13,8 +13,8 @@ manage storage usage within the applicable quotas. Statistics include: - Storage usage across projects in a namespace. -- Storage usage that exceeds the storage quota. -- Available purchased storage. +- Storage usage that exceeds the storage SaaS limit or [self-managed storage quota](../administration/settings/account_and_limit_settings.md#repository-size-limit). +- Available purchased storage for SaaS. Storage and network usage are calculated with the binary measurement system (1024 unit multiples). Storage usage is displayed in kibibytes (KiB), mebibytes (MiB), @@ -30,87 +30,33 @@ you might see references to `KB`, `MB`, and `GB` in the UI and documentation. Prerequisites: - To view storage usage for a project, you must have at least the Maintainer role for the project or Owner role for the namespace. -- To view storage usage for a namespace, you must have the Owner role for the namespace. +- To view storage usage for a group namespace, you must have the Owner role for the namespace. 1. On the left sidebar, select **Search or go to** and find your project or group. 1. On the left sidebar, select **Settings > Usage Quotas**. -1. Select the **Storage** tab. +1. Select the **Storage** tab to see namespace storage usage. +1. To view storage usage for a project, select one of the projects from the table at the bottom of the **Storage** tab of the **Usage Quotas** page. -Select any title to view details. The information on this page -is updated every 90 minutes. +The information on the **Usage Quotas** page is updated every 90 minutes. If your namespace shows `'Not applicable.'`, push a commit to any project in the namespace to recalculate the storage. -### Container Registry usage **(FREE SAAS)** +### View project fork storage usage **(FREE SAAS)** -Container Registry usage is available only for GitLab.com. This feature requires a -[new version](https://about.gitlab.com/blog/2022/04/12/next-generation-container-registry/) -of the GitLab Container Registry. To learn about the proposed release for self-managed -installations, see [epic 5521](https://gitlab.com/groups/gitlab-org/-/epics/5521). - -#### How container registry usage is calculated - -Image layers stored in the Container Registry are deduplicated at the root namespace level. - -An image is only counted once if: - -- You tag the same image more than once in the same repository. -- You tag the same image across distinct repositories under the same root namespace. - -An image layer is only counted once if: - -- You share the image layer across multiple images in the same container repository, project, or group. -- You share the image layer across different repositories. - -Only layers that are referenced by tagged images are accounted for. Untagged images and any layers -referenced exclusively by them are subject to [online garbage collection](packages/container_registry/delete_container_registry_images.md#garbage-collection). -Untagged image layers are automatically deleted after 24 hours if they remain unreferenced during that period. - -Image layers are stored on the storage backend in the original (usually compressed) format. This -means that the measured size for any given image layer should match the size displayed on the -corresponding [image manifest](https://github.com/opencontainers/image-spec/blob/main/manifest.md#example-image-manifest). - -Namespace usage is refreshed a few minutes after a tag is pushed or deleted from any container repository under the namespace. - -#### Delayed refresh - -It is not possible to calculate [container registry usage](#container-registry-usage) -with maximum precision in real time for extremely large namespaces (about 1% of namespaces). -To enable maintainers of these namespaces to see their usage, there is a delayed fallback mechanism. -See [epic 9413](https://gitlab.com/groups/gitlab-org/-/epics/9413) for more details. - -If the usage for a namespace cannot be calculated with precision, GitLab falls back to the delayed method. -In the delayed method, the displayed usage size is the sum of **all** unique image layers -in the namespace. Untagged image layers are not ignored. As a result, -the displayed usage size might not change significantly after deleting tags. Instead, -the size value only changes when: - -- An automated [garbage collection process](packages/container_registry/delete_container_registry_images.md#garbage-collection) - runs and deletes untagged image layers. After a user deletes a tag, a garbage collection run - is scheduled to start 24 hours later. During that run, images that were previously tagged - are analyzed and their layers deleted if not referenced by any other tagged image. - If any layers are deleted, the namespace usage is updated. -- The namespace's registry usage shrinks enough that GitLab can measure it with maximum precision. - As usage for namespaces shrinks to be under the [limits](#namespace-storage-limit), - the measurement switches automatically from delayed to precise usage measurement. - There is no place in the UI to determine which measurement method is being used, - but [issue 386468](https://gitlab.com/gitlab-org/gitlab/-/issues/386468) proposes to improve this. +A cost factor is applied to the storage consumed by project forks so that forks consume less namespace storage than their actual size. -### Storage usage statistics +To view the amount of namespace storage the fork has used: -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68898) project-level graph in GitLab 14.4 [with a flag](../administration/feature_flags.md) named `project_storage_ui`. Disabled by default. -> - Enabled on GitLab.com in GitLab 14.4. -> - Enabled on self-managed in GitLab 14.5. -> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71270) in GitLab 14.5. +1. On the left sidebar, select **Search or go to** and find your project or group. +1. On the left sidebar, select **Settings > Usage Quotas**. +1. Select the **Storage** tab. The **Total** column displays the amount of namespace storage used by the fork as a portion of the actual size of the fork on disk. -The following storage usage statistics are available to a maintainer: +The cost factor applies to the project repository, LFS objects, job artifacts, packages, snippets, and the wiki. -- Total namespace storage used: Total amount of storage used across projects in this namespace. -- Total excess storage used: Total amount of storage used that exceeds their allocated storage. -- Purchased storage available: Total storage that has been purchased but is not yet used. +The cost factor does not apply to private forks in namespaces on the Free plan. -## Manage your storage usage +## Manage storage usage To manage your storage, if you are a namespace Owner you can [purchase more storage for the namespace](../subscriptions/gitlab_com/index.md#purchase-more-storage-and-transfer). @@ -126,14 +72,16 @@ Depending on your role, you can also use the following methods to manage or redu To automate storage usage analysis and management, see the [storage management automation](storage_management_automation.md) documentation. -## Manage your transfer usage +## Set usage quotas **(FREE SELF)** + +There are no application limits on the amount of storage and transfer for self-managed instances. The administrators are responsible for the underlying infrastructure costs. Administrators can set [repository size limits](../administration/settings/account_and_limit_settings.md#repository-size-limit) to manage your repositories’ size. -Depending on your role, to manage your transfer usage you can [reduce Container Registry data transfers](packages/container_registry/reduce_container_registry_data_transfer.md). +## Storage limits **(FREE SAAS)** -## Project storage limit +### Project storage limit -Projects on GitLab SaaS have a 10 GiB storage limit on their Git repository and LFS storage. -After namespace-level storage limits are applied, the project limit is removed. A namespace has either a namespace-level storage limit or a project-level storage limit, but not both. +Projects on GitLab SaaS have a 10 GiB storage limit on their Git repository and LFS storage. Limits on project storage +will be removed before limits are applied to GitLab SaaS namespace storage in the future. When a project's repository and LFS reaches the quota, the project is set to a read-only state. You cannot push changes to a read-only project. To monitor the size of each @@ -141,7 +89,7 @@ repository in a namespace, including a breakdown for each project, [view storage usage](#view-storage-usage). To allow a project's repository and LFS to exceed the free quota you must purchase additional storage. For more details, see [Excess storage usage](#excess-storage-usage). -### Excess storage usage +#### Excess storage usage Excess storage usage is the amount that a project's repository and LFS exceeds the [project storage limit](#project-storage-limit). If no purchased storage is available the project is set to a read-only state. You cannot push changes to a read-only project. @@ -185,12 +133,19 @@ available decreases. All projects no longer have the read-only status because 40 | Yellow | 5 GiB | 0 GiB | 10 GiB | Not read-only | | **Totals** | **45 GiB** | **10 GiB** | - | - | -## Namespace storage limit +### Namespace storage limit **(FREE SAAS)** -Namespaces on GitLab SaaS have a storage limit. For more information, see our [pricing page](https://about.gitlab.com/pricing/). +GitLab plans to enforce a storage limit for namespaces on GitLab SaaS. For more information, see +the FAQs for the following tiers: -After namespace storage limits are enforced, view them in the **Usage quotas** page. -For more information about the namespace storage limit enforcement, see the FAQ pages for the [Free](https://about.gitlab.com/pricing/faq-efficient-free-tier/#storage-limits-on-gitlab-saas-free-tier) and [Paid](https://about.gitlab.com/pricing/faq-paid-storage-transfer/) tiers. +- [Free tier](https://about.gitlab.com/pricing/faq-efficient-free-tier/#storage-limits-on-gitlab-saas-free-tier). +- [Premium and Ultimate](https://about.gitlab.com/pricing/faq-paid-storage-transfer/). + +Namespaces on GitLab SaaS have a [10 GiB project limit](#project-storage-limit) with a soft limit on +namespace storage. Soft storage limits are limits that have not yet been enforced by GitLab, and will become +hard limits after namespace storage limits apply. To avoid your namespace from becoming +[read-only](../user/read_only_namespaces.md) after namespace storage limits apply, +you should ensure that your namespace storage adheres to the soft storage limit. Namespace storage limits do not apply to self-managed deployments, but administrators can [manage the repository size](../administration/settings/account_and_limit_settings.md#repository-size-limit). @@ -209,13 +164,13 @@ If your total namespace storage exceeds the available namespace storage quota, a To notify you that you have nearly exceeded your namespace storage quota: -- In the command-line interface, a notification displays after each `git push` action when you've reached 95% and 100% of your namespace storage quota. -- In the GitLab UI, a notification displays when you've reached 75%, 95%, and 100% of your namespace storage quota. +- In the command-line interface, a notification displays after each `git push` action when your namespace has reached between 95% and 100%+ of your namespace storage quota. +- In the GitLab UI, a notification displays when your namespace has reached between 75% and 100%+ of your namespace storage quota. - GitLab sends an email to members with the Owner role to notify them when namespace storage usage is at 70%, 85%, 95%, and 100%. To prevent exceeding the namespace storage limit, you can: -- [Manage your storage usage](#manage-your-storage-usage). +- [Manage your storage usage](#manage-storage-usage). - If you meet the eligibility requirements, you can apply for: - [GitLab for Education](https://about.gitlab.com/solutions/education/join/) - [GitLab for Open Source](https://about.gitlab.com/solutions/open-source/join/) @@ -225,16 +180,8 @@ To prevent exceeding the namespace storage limit, you can: - [Start a trial](https://about.gitlab.com/free-trial/) or [upgrade to GitLab Premium or Ultimate](https://about.gitlab.com/pricing/), which include higher limits and features to enable growing teams to ship faster without sacrificing on quality. - [Talk to an expert](https://page.gitlab.com/usage_limits_help.html) for more information about your options. -### View project fork storage usage - -A cost factor is applied to the storage consumed by project forks so that forks consume less namespace storage than their actual size. - -To view the amount of namespace storage the fork has used: - -1. On the left sidebar, select **Search or go to** and find your project or group. -1. On the left sidebar, select **Settings > Usage Quotas**. -1. Select the **Storage** tab. The **Total** column displays the amount of namespace storage used by the fork as a portion of the actual size of the fork on disk. - -The cost factor applies to the project repository, LFS objects, job artifacts, packages, snippets, and the wiki. +## Related Topics -The cost factor does not apply to private forks in namespaces on the Free plan. +- [Automate storage management](storage_management_automation.md) +- [Purchase storage and transfer](../subscriptions/gitlab_com/index.md#purchase-more-storage-and-transfer) +- [Transfer usage](packages/container_registry/reduce_container_registry_data_transfer.md) |