排查 GitLab 间接性502问题
一、简介
版本 | 备注 |
---|---|
18.0.0.0 | 15.0.0.0 - 18.0.0.0 均有这个问题,只是频率不一样 |
二、排查思路
- 由于动不动502也不确定那个导致,日志又很多,所以采用脚本查看服务状态方式,看看那个服务被重启了
2.1、脚本
# 下面内容直接复制黏贴即可
cat > getGitlabStatus.sh << EOF
#!/bin/bash
# 确保输出文件存在
touch gitlab.log
while true; do
# 获取当前时间
current_time=$(date "+%Y-%m-%d %H:%M:%S")
# 打印时间到终端
echo "执行时间: $current_time"
# 执行命令并打印结果到终端
result=$(docker exec gitlab gitlab-ctl status 2>&1)
echo "$result"
# 添加分隔线以便于阅读
echo "----------------------------------------"
# 将时间和结果写入文件
{
echo "执行时间: $current_time"
echo "$result"
echo "----------------------------------------"
} >> gitlab.log
# 等待5秒
sleep 5
done
EOF
2.2 运行
# 赋予文件执行权限
chmod +x getGitlabStatus.sh
# 运行脚本
执行时间: 2025-06-09 18:37:10
run: crond: (pid 455) 1867s; run: log: (pid 467) 1864s
run: gitaly: (pid 295) 1879s; run: log: (pid 317) 1878s
run: gitlab-workhorse: (pid 650) 1810s; run: log: (pid 521) 1848s
run: logrotate: (pid 260) 1891s; run: log: (pid 268) 1890s
run: nginx: (pid 551) 1843s; run: log: (pid 571) 1840s
run: postgresql: (pid 326) 1873s; run: log: (pid 336) 1872s
run: puma: (pid 470) 18s; run: log: (pid 477) 18s # 这里我故意这样写的,代表这个问题
run: redis: (pid 275) 1885s; run: log: (pid 285) 1884s
run: sidekiq: (pid 485) 1855s; run: log: (pid 496) 1854s
run: sshd: (pid 36) 1902s; run: log: (pid 35) 1902s
----------------------------------------
2.3、解决方式
- 调整gitlab 配置文件,这个主要是 puma['worker_processes'] = 0 导致的,禁用即可
- 下面的参数和cpu核心数有关系,我的是4核,所以设置2个,避免占用太多内存 设置512
# 禁用 PUMA 集群模式, worker_processes 设置0可能会导致502问题
#puma['worker_processes'] = 0
puma['min_threads'] = 2
puma['max_threads'] = 2
puma['per_worker_max_memory_mb'] = 512
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/other/1614.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
排查 GitLab 间接性502问题
一、简介
版本
备注
18.0.0.0
15.0.0.0 - 18.0.0.0 均有这个问题,只是频率不一样
二、排查思路
由于动不动502也不确定那个导致,日志又很多,所以……

文章目录
关闭
共有 0 条评论