极狐GitLab 安装要求

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: 私有化部署

极狐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旗舰版,至少 12 GB 的存储(需要导入 1 GB 的漏洞数据)

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

极狐GitLab 版本最低 PostgreSQL 版本最高 PostgreSQL 版本
18.x16.x待定
17.x14.x16.x
16.x13.615.x
15.x12.1014.x、13.x

小版本的 PostgreSQL 发布仅包含错误和安全修复。始终使用最新的小版本以避免 PostgreSQL 中的已知问题。

要使用比指定版本更新的 PostgreSQL 主要版本,请检查是否有更新版本与 Linux 软件包捆绑在一起

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

极狐GitLab Geo#

对于极狐GitLab Geo,您应该使用 Linux 软件包或验证的云提供商来安装极狐GitLab。与其他外部数据库的兼容性不受保证。

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

区域设置兼容性#

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

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

时,检查区域设置兼容性

有关更多信息,请参阅升级 PostgreSQL 的操作系统

极狐GitLab 模式#

您应该专门为极狐GitLab、GeoGitaly Cluster 或其他组件创建或使用数据库。不要创建或修改数据库、模式、用户或其他属性,除非您遵循:

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

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

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

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

PostgreSQL 调优#

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

可调设置必需值更多信息
work_mem最低 8MB此值是 Linux 软件包默认设置。在大型部署中,如果查询创建临时文件,您应该增加此设置。
maintenance_work_mem最低 64MB对于较大的数据库服务器需要更多。
shared_buffers最低 2GB对于较大的数据库服务器需要更多。Linux 软件包默认设置为服务器 RAM 的 25%。
statement_timeout最大 1 分钟声明超时可防止锁定问题,并使数据库拒绝新客户端。1 分钟匹配 Puma rack 超时设置。

Puma#

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

要调整 Puma 设置:

工作进程#

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

节点的 Puma 工作进程数不得少于两个。例如,节点应该有:

  • 2 个 CPU 核心和 8 GB 内存的两个工作进程
  • 4 个 CPU 核心和 4 GB 内存的两个工作进程
  • 4 个 CPU 核心和 8 GB 内存的四个工作进程
  • 8 个 CPU 核心和 8 GB 内存的六个工作进程
  • 8 个 CPU 核心和 16 GB 内存的八个工作进程

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

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

线程#

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

  • 对于最大 2 GB 内存的操作系统使用一个线程
  • 对于超过 2 GB 内存的操作系统使用四个线程

更多线程会导致过度交换和性能下降。

Redis#

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

在极狐GitLab 16.0 及更高版本中,Redis 6.2.x 或 7.x 是必需的。

对于 Redis:

  • 使用独立实例(有或没有高可用性)。Redis 集群不受支持。
  • 适当地设置逐出策略

Sidekiq#

Sidekiq 使用多线程进程处理后台作业。此进程最初消耗超过 200 MB 的内存,并可能由于内存泄漏而随着时间增长。

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

Prometheus#

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

有关更多信息,请参阅使用 Prometheus 监控极狐GitLab

支持的网页浏览器#

极狐GitLab 支持以下网页浏览器:

  • Mozilla Firefox
  • Google Chrome
  • Chromium
  • Apple Safari
  • Microsoft Edge

极狐GitLab 支持:

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

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