温馨提示×

linux gitlab怎么限制内存

小樊
46
2026-09-25 18:22:59
栏目: 智能运维

在 Linux 上部署 GitLab(通常指 Omnibus 版 GitLab)时,限制内存主要有几种方式,按使用场景给你说明:


一、通过 GitLab 自身配置限制(推荐)

GitLab 自带很多组件的内存限制参数,修改 /etc/gitlab/gitlab.rb 后执行 gitlab-ctl reconfigure。

1. 限制 Unicorn / Puma(Web 服务)

puma['worker_processes'] = 2
puma['worker_memory_limit_min'] = "300MB"
puma['worker_memory_limit_max'] = "500MB"

(老版本是 Unicorn)

unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_min'] = "300MB"
unicorn['worker_memory_limit_max'] = "500MB"

2. 限制 Sidekiq

sidekiq['max_concurrency'] = 10
sidekiq['min_concurrency'] = 10

3. 限制 PostgreSQL

postgresql['shared_buffers'] = "256MB"
postgresql['work_mem'] = "16MB"

4. 关闭不需要的组件(节省内存)

prometheus['enable'] = false
grafana['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false

二、通过 systemd 限制 GitLab 总内存(系统级)

GitLab 各服务由 systemd 管理,可单独限制。

1. 编辑 gitlab-runsvdir 服务

systemctl edit gitlab-runsvdir.service

加入:

[Service]
MemoryLimit=2G

然后:

systemctl daemon-reload
systemctl restart gitlab-runsvdir

三、使用 cgroups 限制(高级)

如果你用 Docker 或手动部署:

Docker 方式(最常见)

docker run -d \
  --memory=2g \
  --memory-swap=2g \
  gitlab/gitlab-ce

cgroup v1 示例

cgcreate -g memory:/gitlab
echo 2G > /sys/fs/cgroup/memory/gitlab/memory.limit_in_bytes
cgexec -g memory:/gitlab gitlab-ctl start

四、小内存服务器建议配置(1–2G 内存)

puma['worker_processes'] = 1
sidekiq['max_concurrency'] = 5
postgresql['shared_buffers'] = "128MB"
prometheus['enable'] = false
grafana['enable'] = false

然后:

gitlab-ctl reconfigure
gitlab-ctl restart

五、查看内存占用

gitlab-ctl status
free -h
top -u git

如果你能告诉我:

  • ✅ 是 Omnibus / Docker / Kubernetes
  • ✅ 当前服务器内存大小
  • ✅ GitLab 版本

我可以直接给你一套可复制的配置。

0 踩