首页 新闻 会员 周边

gitlab ci 上传 artifacts 速度太慢了

0
悬赏园豆:100 [已解决问题] 解决于 2022-12-09 16:26

阿里云内网上传,上传速度通常不到 300KB/s,一个 pipeline 需要上传 200多M 的 artifacts,要10多分钟,太慢了

上传后端 build 输出文件(上传过程中)

上传后端 build 输出文件(上传已完成)

上传前端 build 输出文件(上传已完成)

见过的最快上传速度是 307KB/s

这是 gitlab 知名问题,gitlab 上的 issue: Slow artifact creation and upload

请问有什么变通方法可以解决这个问题?

问题补充:

后续 job下载这些 artifacts 飞快,只需14秒左右

dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2022-12-09 12:07

gitlab-runner 对应的实现源码 network/gitlab.go#L708

dudu 1年前

从 gitlab-runner 的源码看上传 artifacts 就是向 gitlab web api 发 post 请求

dudu 1年前
< >
分享
最佳答案
0

终于真相大白!与 gitlab 无关,是因为 gitlab-runner 的配置问题造成没有走内网,走的是外网,外网的带宽只有5M。

gitlab-runner 解析 gitlab 服务器的内网 IP 地址是通过在 /etc/hosts 中添加解析,但上传 artifacts 的 job 跑在 docker executor 中,/etc/hosts 的解析对 docker 容器不起作用,需要在 /etc/gitlab-runner/config.toml 中专门为 docker 容器添加解析

extra_hosts = [""gitlab-server:private-ip"]

添加解析后,瞬间就完成上传200多M的 artifacts 文件

dudu | 高人七级 |园豆:30994 | 2022-12-09 16:25
其他回答(1)
0

生成release只需要链接就可以,所以上传存储可以找个第三方,比如阿里云oss,或者自己的文件服务,不一定要gitlab的文件,只要你能确保release的链接能下载文件就行;

收获园豆:100
diudiu1 | 园豆:1031 (小虾三级) | 2022-12-09 15:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册