温馨提示×

linux gitlab怎么优化内存

小樊
38
2026-09-19 15:14:51
栏目: 智能运维

Linux 上的 GitLab 内存占用过高是常见问题,通常是因为 GitLab 默认开启了 大量组件(Sidekiq、Puma、Prometheus、Redis、PostgreSQL 等)。下面按「最实用 → 进阶」给你一套优化方案。


一、最推荐:减少 GitLab 自带服务(立竿见影)

编辑配置文件:

sudo vim /etc/gitlab/gitlab.rb

1️⃣ 关闭 Prometheus(监控,很吃内存)

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

2️⃣ 关闭 Grafana

grafana['enable'] = false

3️⃣ 关闭 GitLab Pages / Registry(如不用)

pages['enable'] = false
registry['enable'] = false

4️⃣ 关闭 Mattermost

mattermost['enable'] = false

保存后执行:

sudo gitlab-ctl reconfigure

这一步通常能省 500MB–1.5GB 内存


二、优化 Puma(Web 服务,核心)

Puma 是 GitLab 的 Web 服务,默认线程/进程偏多。

puma['worker_processes'] = 2
puma['min_threads'] = 1
puma['max_threads'] = 4

如果服务器内存很小(≤2G):

puma['worker_processes'] = 1

然后:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart puma

三、限制 Sidekiq(后台任务)

sidekiq['max_concurrency'] = 10

小内存机器:

sidekiq['max_concurrency'] = 5

四、PostgreSQL 内存优化(重要)

postgresql['shared_buffers'] = "256MB"
postgresql['work_mem'] = "8MB"
postgresql['maintenance_work_mem'] = "64MB"

仅供小型 GitLab 使用。


五、Redis 内存限制(可选)

redis['maxmemory'] = "256mb"
redis['maxmemory_policy'] = "allkeys-lru"

六、Swap(防止 OOM 崩溃)

即使内存小,也建议加 swap:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

开机自动挂载:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

七、查看内存占用(排查用)

sudo gitlab-ctl status
free -h
top

按组件查看:

ps aux --sort=-%mem | head

八、最小内存建议

使用场景 最低内存
个人 / 小团队 2GB
公司使用 4GB+
关闭监控后 1.5GB 可跑

九、示例:1–2GB 服务器推荐配置

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

如果你愿意,可以告诉我:

  • ✅ 服务器内存多大
  • ✅ GitLab 版本
  • ✅ 是否只是自己用 / 团队用

我可以给你一份 直接可复制的 gitlab.rb 配置

0