极狐GitLab 安装系统要求
此页面包含有关安装极狐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是仅支持的数据库,并与软件包捆绑在一起。当然,您也可以使用外部 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(测试基于极狐GitLab 16.10 及以后版本) |
16.x | 13.6 | 15.x(测试基于极狐GitLab 16.1 及以后版本) |
15.x | 12.10 | 14.x(测试基于极狐GitLab 15.11 及以后版本), 13.x |
最小 PostgreSQL 版本仅包含缺陷和安全修复。始终使用最新版本以避免 PostgreSQL 中的已知问题。
要使用 PostgreSQL 最新版本而不是指定版本,请检查Linux 软件包中是否捆绑了较新的版本。
您必须确保有些扩展被加载到了极狐GitLab 数据库中。更多详情,可以查看管理 PostgreSQL 扩展。
极狐GitLab Geo
对极狐GitLab Geo,您应该使用 Linux 软件包或经过验证的云提供商来安装极狐GitLab。其他外部数据库的兼容性无法保证。
更多详情,请查看极狐GitLab Geo 系统要求。
区域设置兼容性
当你在 glibc
中修改区域设置数据时,PostgreSQL 数据库文件在不同操作系统版本之间不完全兼容。为了避免索引损坏,检查区域设置兼容性。
当你:
- 在服务器之间移动二进制 PostgreSQL 数据。
- 升级您的 Linux 发行版。
- 更新或更改第三方容器镜像。
更多详情,请查看为 PostgreSQL 升级操作系统。
操作系统语言环境兼容性和静默索引损坏
glibc
中语言环境数据的更改意味着 PostgreSQL 数据库文件在不同操作系统版本之间不完全兼容。
为避免索引损坏,在以下情况,检查语言环境兼容性:
- 在服务器之间移动二进制 PostgreSQL 数据。
- 升级您的 Linux 发行版。
- 更新或更改第三方容器镜像。
极狐GitLab schemas
您应该为极狐GitLab、Geo、Gitaly 集群 或其他组件创建或使用专门的数据库。不要创建或修改数据库、schema、用户或其他属性,除非您遵循:
- 极狐GitLab 文档中的流程或步骤
- 极狐GitLab 支持或工程师的指导
主要的极狐GitLab 应用使用以下三个 schema:
- 默认的
public
schema -
gitlab_partitions_static
(自动创建) -
gitlab_partitions_dynamic
(自动创建)
在 Rails 数据库迁移期间,极狐GitLab 可能创建或修改 schema 或表。数据库迁移会根据极狐GitLab 代码库中的 schema 定义进行测试。如果你修改了任何 schema,极狐GitLab 升级可能会失败。
PostgreSQL 微调
下面是外部管理的 PostgreSQL 实例的一些必需设置。
可调的设置 | 必需值 | 更多信息 |
---|---|---|
work_mem |
最小 8MB
|
这是 Linux 软件包的默认值。在大型部署中,如果需要创建临时文件,您应该增加此设置。 |
maintenance_work_mem |
最小 64MB
|
针对大型数据库服务器,您需要增加此值。 |
shared_buffers |
最小 2GB
|
针对大型数据库服务器,您需要增加此值。Linux 软件包的默认值为服务器 RAM 的 25%。 |
statement_timeout |
最大 1 分钟 | 语句超时机制可防止出现因锁导致的失控问题,以及数据库拒绝新客户端连接的情况。一分钟设置与 Puma rack 超时设置相匹配。 |
Puma
推荐的Puma设置取决于你的安装。默认情况下,Linux 软件包使用推荐的设置。
要调整 Puma 设置:
- 对 Linux 软件包,请参阅Puma 设置。
- 对极狐GitLab Helm chart,请参阅
webservice
chart。
Workers
推荐的 Puma 工作器取决于 CPU 和内存容量。默认情况下,Linux 软件包使用推荐的工作器数量。有关此数字如何计算的更多信息,请参阅 puma.rb
。
一个节点的工 Puma 工作器数量不能少于 2 个。例如,一个节点应该有:
- 2 个工作器,2 个 CPU 核心和 8 GB 内存
- 2 个工作器,4 个 CPU 核心和 4 GB 内存
- 4 个工作器,4 个 CPU 核心和 8 GB 内存
- 6 个工作器,8 个 CPU 核心和 8 GB 内存
- 8 个工作器,8 个 CPU 核心和 16 GB 内存
默认情况下,每个 Puma 工作器限制为 1.2 GB 内存。您可以在 /etc/gitlab/gitlab.rb
中调整此设置。
您还可以增加 Puma 工作器的数量,提供足够的 CPU 和内存容量就可以。更多的工作器将减少响应时间,并提高处理并行请求的能力。运行测试以验证你的安装的最佳工作器数量。
线程
推荐的 Puma 线程数量取决于总系统内存。一个节点应该使用:
- 一个最大内存为 2GB 的操作系统,一个线程
- 超过 2GB 内存的操作系统,四个线程
线程数量过多会导致频繁的内存交换,进而降低性能。
Redis
Redis存储所有的用户会话和后台任务,并且平均每个用户需要 25 kB 的存储空间。
在极狐GitLab 16.0 及以后版本中,需要 Redis 6.x 或 7.x。关于 Redis 的生命周期结束日期,查看Redis 文档。
对 Redis:
Sidekiq
Sidekiq使用多个线程来处理后台作业。此过程初始消耗的内存会超过 200MB,且可能随着时间的推移而增长,因为内存泄漏。
在超过 10,000 付费用户的服务器上,Sidekiq 进程可能会消耗超过 1 GB 的内存。
Prometheus
默认情况下,Prometheus及其相关的导出器能够监控极狐GitLab。这些进程会消耗接近 200MB 内存。
更多详情,请查阅使用 Prometheus 监控极狐GitLab。
支持的 web 浏览器
极狐GitLab 支持如下的 web 浏览器:
极狐GitLab 支持:
- 这些浏览器的最新两个主要版本
- 支持的主要版本的当前次要版本
不支持在禁用 JavaScript 的这些浏览器中运行极狐GitLab。