温馨提示×

centos gitlab内存不足咋办

小樊
44
2026-09-08 22:08:40
栏目: 智能运维

在 CentOS 上运行 GitLab 时,内存不足是非常常见的问题,尤其是单机部署或低配服务器。下面按「先救命 → 再优化 → 长期方案」给你一套实用做法。


一、先确认是不是真的内存不够

free -h
top

看:

  • available 是否很小
  • GitLab 相关进程(sidekiq、unicorn/puma、postgresql)占用是否很高

也可以看日志:

grep -i "out of memory" /var/log/messages

二、临时救急(马上见效)

1️⃣ 重启 GitLab(释放内存)

gitlab-ctl restart

或只重启吃内存的组件:

gitlab-ctl restart sidekiq
gitlab-ctl restart puma

2️⃣ 加 Swap(强烈建议)

GitLab 官方不建议 0 Swap

# 创建 4G swap
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

开机自动挂载:

echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

三、长期优化(关键)

3️⃣ 精简 GitLab 组件(非常重要)

编辑配置文件:

vi /etc/gitlab/gitlab.rb

✅ 减少 Puma / Unicorn worker

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

✅ 限制 Sidekiq

sidekiq['concurrency'] = 10

✅ 关闭不需要的服务(示例)

prometheus_monitoring['enable'] = false
grafana['enable'] = false
mattermost['enable'] = false
registry['enable'] = false

保存后执行:

gitlab-ctl reconfigure

4️⃣ 调整 PostgreSQL 内存

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

四、架构层面优化

5️⃣ 如果服务器 < 4G 内存

不建议跑完整 GitLab

可选方案:

  • 升级到 4G+ 内存
  • GitLab CE 最小部署
  • 或改用:
    • Gitea(轻量)
    • GitLab Runner 分离部署

五、推荐最低配置(官方)

规模 内存
最小 4 GB
生产 8 GB+

六、快速自检清单 ✅

  • [ ] 有 Swap
  • [ ] Puma worker ≤ 2
  • [ ] Sidekiq 已限制
  • [ ] 关闭 Prometheus / Grafana
  • [ ] PostgreSQL 内存已调小

如果你愿意,可以:

  • 贴一下 free -h
  • gitlab.rb 配置
  • 或服务器配置(CPU / 内存)

我可以直接帮你算出最优参数

0