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

GitLab 安装要求

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed

GitLab 有特定的安装要求。

存储

所需的存储空间主要取决于您想在 GitLab 中拥有的仓库大小。 作为指导原则,您应该至少拥有与所有仓库总和一样多的可用空间。

Linux 安装包需要约 2.5 GB 的存储空间。 为了存储灵活性,考虑通过逻辑卷管理挂载您的硬盘。 您应该拥有至少 7,200 RPM 的硬盘或固态硬盘,以减少响应时间。

由于文件系统性能可能会影响 GitLab 的整体性能,您应该 避免使用基于云的文件系统进行存储

CPU

CPU 要求取决于用户数量和预期工作负载。 工作负载包括用户活动、自动化和镜像的使用,以及仓库大小。

对于每秒最多 20 个请求或 1,000 个用户,您应该拥有 8 vCPU。 对于更多用户或更高工作负载, 请参阅参考架构

内存

内存要求取决于用户数量和预期工作负载。 工作负载包括用户活动、自动化和镜像的使用,以及仓库大小。

对于每秒最多 20 个请求或 1,000 个用户,您应该拥有 16 GB 内存。 对于更多用户或更高工作负载, 请参阅参考架构

在某些情况下,GitLab 可以在至少 8 GB 内存的情况下运行。 更多信息,请参阅 在内存受限环境中运行 GitLab

PostgreSQL

PostgreSQL 是唯一支持的数据库,并随 Linux 安装包一起提供。 您也可以使用外部 PostgreSQL 数据库 必须正确调优

根据用户数量, PostgreSQL 服务器应该拥有:

  • 对于大多数 GitLab 实例,至少 5 到 10 GB 的存储空间
  • 对于 GitLab Ultimate,至少 12 GB 的存储空间 (必须导入 1 GB 的漏洞数据)

对于以下 GitLab 版本,使用这些 PostgreSQL 版本:

GitLab 版本 Helm chart 版本 最低 PostgreSQL 版本 最高 PostgreSQL 版本
18.x 9.x 16.x 待确定
17.x 8.x 14.x 16.x (已针对 GitLab 16.10 及更高版本测试)
16.x 7.x 13.6 15.x (已针对 GitLab 16.1 及更高版本测试)
15.x 6.x 12.10 14.x (仅针对 GitLab 15.11 测试), 13.x

PostgreSQL 次要版本仅包含错误和安全修复。 始终使用最新的次要版本以避免 PostgreSQL 中已知的问题。 更多信息,请参阅问题 364763

要使用比指定版本更新的主要版本,检查是否 有更新的版本随 Linux 安装包一起提供

您还必须确保某些扩展加载到每个 GitLab 数据库中。 更多信息,请参阅管理 PostgreSQL 扩展

GitLab Geo

对于 GitLab Geo,您应该使用 Linux 安装包或 经过验证的云服务提供商 来安装 GitLab。 与其他外部数据库的兼容性无法保证。

更多信息,请参阅运行 Geo 的要求

区域设置兼容性

当您更改 glibc 中的区域设置数据时,PostgreSQL 数据库文件在不同操作系统之间 不再完全兼容。 为了避免索引损坏,在以下情况下 检查区域设置兼容性

  • 在服务器之间移动二进制 PostgreSQL 数据。
  • 升级您的 Linux 发行版。
  • 更新或更改第三方容器镜像。

更多信息,请参阅为 PostgreSQL 升级操作系统

GitLab 模式

您应该为 GitLab、GeoGitaly Cluster (Praefect) 或其他组件 创建或使用专用数据库。 除非您遵循以下操作,否则不要创建或修改数据库、模式、用户或其他属性:

  • GitLab 文档中的程序
  • GitLab 支持或工程师的指导

主要的 GitLab 应用程序使用三个模式:

  • 默认的 public 模式
  • gitlab_partitions_static(自动创建)
  • gitlab_partitions_dynamic(自动创建)

在 Rails 数据库迁移期间,GitLab 可能会创建或修改模式或表。 数据库迁移针对 GitLab 代码库中的模式定义进行了测试。 如果您修改任何模式,GitLab 升级可能会失败。

PostgreSQL 调优

以下是外部管理的 PostgreSQL 实例的一些必需设置。

可调设置 必需值 更多信息
work_mem 最小 8 MB 此值是 Linux 安装包的默认值。在大型部署中,如果查询创建临时文件,您应该增加此设置。
maintenance_work_mem 最小 64 MB 对于大型数据库服务器,您需要更多
shared_buffers 最小 2 GB 对于大型数据库服务器,您需要更多。Linux 安装包默认设置为服务器 RAM 的 25%。
statement_timeout 最大 1 分钟 语句超时可以防止锁和数据库拒绝新客户端的失控问题。一分钟与 Puma 超时设置相匹配。

您可以为特定数据库配置一些 PostgreSQL 设置,而不是为服务器上的所有数据库配置。 当在同一服务器上托管多个数据库时,您可能将配置限制为特定数据库。 有关应用配置位置的指导,请咨询您的数据库管理员。

Puma

推荐的 Puma 设置取决于您的安装方式。 默认情况下,Linux 安装包使用推荐的设置。

要调整 Puma 设置:

工作进程

推荐的 Puma 工作进程数量主要取决于 CPU 和内存容量。 默认情况下,Linux 安装包使用推荐数量的工作进程。 有关如何计算此数量的更多信息, 请参阅 puma.rb

节点绝不能少于两个 Puma 工作进程。 例如,一个节点应该拥有:

  • 2 个 CPU 内核和 8 GB 内存:2 个工作进程
  • 4 个 CPU 内核和 4 GB 内存:2 个工作进程
  • 4 个 CPU 内核和 8 GB 内存:4 个工作进程
  • 8 个 CPU 内核和 8 GB 内存:6 个工作进程
  • 8 个 CPU 内核和 16 GB 内存:8 个工作进程

默认情况下,每个 Puma 工作进程限制为 1.2 GB 内存。 您可以在 /etc/gitlab/gitlab.rb调整此设置

如果有足够的 CPU 和内存容量,您也可以增加 Puma 工作进程数量。 更多工作进程将减少响应时间并提高处理并行请求的能力。 运行测试以验证您的安装方式的最佳工作进程数量。

线程

推荐的 Puma 线程数量取决于系统总内存。 一个节点应该使用:

  • 内存最大为 2 GB 的操作系统:1 个线程
  • 内存超过 2 GB 的操作系统:4 个线程

更多线程将导致过度交换和性能降低。

Redis

Redis 存储所有用户会话和后台任务 平均每个用户需要约 25 kB。

在 GitLab 16.0 及更高版本中,需要 Redis 6.x 或 7.x。 有关生命周期结束日期的更多信息,请参阅 Redis 文档

对于 Redis:

  • 使用独立实例(有或没有高可用性)。 不支持 Redis Cluster。
  • 根据需要设置驱逐策略

Sidekiq

Sidekiq 使用多线程进程处理后台任务。 此进程初始消耗超过 200 MB 内存 并且可能因内存泄漏随时间增长。

在有超过 10,000 个计费用户的非常活跃的服务器上, Sidekiq 进程可能消耗超过 1 GB 内存。

Prometheus

默认情况下,Prometheus 及其相关导出器已启用以监控 GitLab。 这些进程消耗约 200 MB 内存。

更多信息,请参阅 使用 Prometheus 监控 GitLab

支持的 Web 浏览器

GitLab 支持以下 Web 浏览器:

GitLab 支持:

  • 这些浏览器的两个最新主要版本
  • 支持的主要版本的当前次要版本

在这些浏览器中禁用 JavaScript 运行 GitLab 不受支持。

相关主题