VPS自建GitLab Runner启动耗时5分钟,如何优化?
问题排查与解决步骤
1. 查看GitLab Runner实时日志
先定位延迟根源,通过日志明确是作业通知接收慢还是执行环境初始化慢:
# 启动debug模式查看实时日志 sudo gitlab-runner --debug run # 或查看系统服务日志 journalctl -u gitlab-runner.service -f
重点关注作业被分配后到开始执行的时间段,定位延迟环节。
2. 调整Runner轮询间隔配置
你的config.toml中check_interval = 0,部分旧版本会出现轮询逻辑异常,建议修改为:
check_interval = 3
修改后重启Runner生效:
sudo gitlab-runner restart
该配置让Runner每3秒检查一次新作业,缩小等待窗口。
3. 排查Shell Executor环境初始化延迟(针对Runner1)
若使用Shell执行器,作业启动前会加载gitlab-runner用户的环境,可能存在冗余配置拖慢速度:
- 检查
/home/gitlab-runner/.bashrc、.profile文件,移除耗时命令(如网络请求、大量文件遍历) - 测试切换用户的速度,验证环境加载是否正常:
sudo su - gitlab-runner
4. 优化Docker Executor镜像拉取速度(针对Runner2)
若使用Docker执行器,首次启动作业会拉取ruby:latest镜像,VPS网络差会导致拉取延迟:
- 提前手动拉取镜像,避免作业等待:
sudo docker pull ruby:latest
- 配置Docker国内镜像源加速拉取,编辑
/etc/docker/daemon.json:
{ "registry-mirrors": ["https://hub-mirror.c.163.com"] }
修改后重启服务:
sudo systemctl restart docker sudo gitlab-runner restart
5. 检查Runner与GitLab.com的网络连通性
VPS到GitLab.com的网络延迟可能导致作业通知接收滞后:
- 测试网络连通性与延迟:
ping gitlab.com -c 10 curl -I https://gitlab.com/api/v4/projects
若延迟过高,可更换VPS的DNS(如8.8.8.8、1.1.1.1),或检查防火墙/安全组是否限制出站流量。
6. 升级GitLab Runner版本
你当前使用的15.6.1版本较旧,可能存在已知的轮询或作业分配bug,升级到最新稳定版:
sudo apt-get update sudo apt-get install gitlab-runner
升级后重启Runner。
内容的提问来源于stack exchange,提问作者Camel4488
相关产品推荐
相关产品推荐

