- Published on
自从我们迁移到 k8s, 我们观察到 k8s 集群里的 gitlab CI runner 在跑 golangci-lint 的时候比本机跑慢很多.
本机一般几十秒就能搞定的事情, 在跑 CI 的时候, 基本上都要花上几分钟甚至几十分钟. (依项目代码量而异)
当然, 由于 CI 都是自动跑的, 大部分时间我们基本上不会花时间去刻意观察 CI 的执行. 因此慢一点其实也不会影响什么.
这个周末正好趁疫情居家哪也去不了, 研究了一下怎么想办法将速度优化.
起初我以为是因为普通云盘的 IO 性能低下导致的问题, 因为我们的节点的 CPU 和 内核配置都还算不错, 不至于跑个 CI 都会因为这个影响到速度.
但是经过研究, 我发现其实大部分时间花在重复地一次又一次地加载go mod 和 重复地进行代码静态分析.
...