温馨提示×

Linux GitLab内存怎么调

小樊
36
2026-08-13 05:24:39
栏目: 智能运维

在 Linux 上调整 GitLab 的内存占用,通常从 系统层面GitLab 配置层面 两方面入手。下面按「最常见 → 进阶」给你一套可操作的方案。


一、先确认 GitLab 吃内存的元凶

GitLab 内存主要来源:

  • PostgreSQL
  • Redis
  • Sidekiq(后台任务)
  • Puma(Web 服务)
  • Gitaly(Git 仓库)
  • Prometheus(监控,很吃内存)

查看内存占用:

free -h
top
htop
# 或只看 GitLab 进程
ps aux | grep gitlab

二、最推荐:关闭 Prometheus(省 1~2G)

如果你不是大规模集群,Prometheus 最耗内存

关闭 Prometheus

编辑配置:

sudo vi /etc/gitlab/gitlab.rb

添加或修改:

prometheus_monitoring['enable'] = false

然后:

sudo gitlab-ctl reconfigure

效果:内存可下降 1~2GB


三、调整 Puma(最关键的 Web 服务)

Puma 是 GitLab 的 Web 服务器,默认很激进。

查看当前配置

cat /etc/gitlab/gitlab.rb | grep puma

推荐小内存服务器配置(2–4 GB)

puma['enable'] = true
puma['worker_processes'] = 2
puma['min_threads'] = 1
puma['max_threads'] = 2

4 GB 以上可:

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

然后:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

四、限制 Sidekiq(后台任务)

Sidekiq 默认并发较高。

限制并发数

sidekiq['max_concurrency'] = 10

或更激进(1–2 人私用):

sidekiq['max_concurrency'] = 5

五、PostgreSQL 内存优化

如果你不是大规模使用 GitLab:

postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 2

或者干脆限制内存使用:

postgresql['shared_buffers'] = "64MB"
postgresql['work_mem'] = "4MB"

六、Redis(一般不用动)

Redis 默认内存占用不大,除非你启用了大量缓存。

如果想限制:

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

七、关闭不需要的服务(强烈推荐)

如果你只用 GitLab 做代码仓库:

gitlab_rails['monitoring_whitelist'] = []
grafana['enable'] = false

八、推荐小内存 GitLab 配置(4GB 示例)

prometheus_monitoring['enable'] = false
puma['worker_processes'] = 2
puma['min_threads'] = 1
puma['max_threads'] = 2
sidekiq['max_concurrency'] = 10
postgresql['shared_buffers'] = "128MB"
grafana['enable'] = false

生效:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

九、系统层面优化(可选但有效)

1️⃣ 增加 swap(防止 OOM)

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

写入 fstab:

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

2️⃣ 调整 swappiness

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

十、最低内存建议

用途 最低内存
个人 / 小团队 4 GB
企业使用 8 GB+
关闭 Prometheus 可省 1–2 GB

如果你愿意,可以把:

  • 服务器内存
  • GitLab 版本
  • 使用人数

发给我,我可以给你一套 精确配置,直接照抄用 ✅

0