{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
{{< /details >}}
极狐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.x | 16.x | 待定 |
17.x | 14.x | 16.x |
16.x | 13.6 | 15.x |
15.x | 12.10 | 14.x、13.x |
小版本的 PostgreSQL 发布仅包含错误和安全修复。始终使用最新的小版本以避免 PostgreSQL 中的已知问题。
要使用比指定版本更新的 PostgreSQL 主要版本,请检查是否有更新版本与 Linux 软件包捆绑在一起。
您还必须确保某些扩展加载到每个极狐GitLab 数据库中。有关更多信息,请参阅管理 PostgreSQL 扩展。
极狐GitLab Geo
对于极狐GitLab Geo,您应该使用 Linux 软件包或验证的云提供商来安装极狐GitLab。与其他外部数据库的兼容性不受保证。
有关更多信息,请参阅运行 Geo 的要求。
区域设置兼容性
当您更改 glibc
中的区域设置数据时,PostgreSQL 数据库文件在不同操作系统之间不再完全兼容。为避免索引损坏,当您:
- 在服务器之间移动二进制 PostgreSQL 数据。
- 升级您的 Linux 发行版。
- 更新或更改第三方容器映像。
时,检查区域设置兼容性。
有关更多信息,请参阅升级 PostgreSQL 的操作系统。
极狐GitLab 模式
您应该专门为极狐GitLab、Geo、Gitaly 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 设置:
- 对于 Linux 软件包,请参阅Puma 设置。
- 对于极狐GitLab Helm chart,请参阅
webservice
chart。
工作进程
推荐的 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 是不受支持的。