You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

低配置服务器GitLab周期性502异常(Puma频繁重启)求助

解决低配置服务器上GitLab Puma周期性重启导致的502错误

从你提供的日志和配置来看,Puma每10分钟左右优雅停止并重启,核心原因是低配置服务器资源不足,触发了进程内存限制或者系统OOM(内存耗尽)。以下是针对性的优化方案:

一、大幅调整Puma配置,降低内存占用

当前Puma的内存限制和线程数对低配置服务器仍偏高,建议修改为:

puma['worker_processes'] = 1 # 直接指定1个worker,避免自动分配多进程
puma['min_threads'] = 1
puma['max_threads'] = 2 # 减少线程数,降低单进程内存消耗
puma['per_worker_max_memory_mb'] = 256 # 减半内存限制,避免触发重启阈值
puma['worker_timeout'] = 60 # 延长worker超时时间,防止误判进程无响应

二、优化Sidekiq配置,减少资源抢占

Sidekiq高并发会占用大量CPU和内存,间接导致Puma资源不足,调整为:

sidekiq['max_concurrency'] = 2 # 降低并发数
sidekiq['max_memory_limit'] = '256MB' # 给Sidekiq加内存限制

三、关闭更多非核心服务

除了你已经关闭的服务,再关闭以下非必要组件,进一步释放资源:

gitlab_rails['incoming_email_enabled'] = false
gitlab_rails['outgoing_email_enabled'] = false
gitlab_pages['enable'] = false
gitaly['concurrency'] = {
  'default' => 2 # 降低Gitaly并发,减少磁盘和内存占用
}

四、检查系统OOM日志,确认是否内存耗尽

执行以下命令查看系统是否因为内存不足杀掉进程:

dmesg | grep -i oom
# 或者用journalctl查看
journalctl -k | grep -i oom

如果存在OOM记录,建议给服务器添加swap分区缓解内存压力:

# 创建1GB swap文件
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# 设置开机自动挂载
echo '/swapfile none swap sw 0 0' >> /etc/fstab

五、生效配置并验证

修改完/etc/gitlab/gitlab.rb后,执行以下命令使配置生效:

gitlab-ctl reconfigure
gitlab-ctl restart

之后通过gitlab-ctl tail puma持续观察日志,确认Puma是否还会周期性重启。

内容的提问来源于stack exchange,提问作者bing liran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:32:10