温馨提示×

Jenkins Ubuntu部署慢为何

小樊
35
2026-10-10 04:10:56
栏目: 智能运维

在 Ubuntu 上用 Jenkins 部署慢,通常不是单一原因,而是若干常见因素叠加。下面按最常见 → 较少见的顺序说明,并给出排查方向。


一、最常见原因

1. 依赖下载慢(尤其 Maven / npm / pip)

这是第一嫌疑。

  • Maven 从中央仓库拉依赖
  • npm 从 registry 拉包
  • pip 从 PyPI 拉包

表现

  • 构建卡在 Downloading
  • 日志长时间无进展

原因

  • 默认源在国外(repo.maven.apache.org、registry.npmjs.org)
  • Ubuntu 服务器带宽小或延迟高

解决

# Maven
<mirror>
  <id>aliyun</id>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

# npm
npm config set registry https://registry.npmmirror.com

# pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2. 没有使用 Jenkins 构建缓存

每次都重新拉代码、重新下载依赖。

问题点

  • 工作空间每次清空
  • 没有挂载依赖缓存目录

建议

  • 使用 Workspace 持久化
  • Docker 构建时挂载:
-v ~/.m2:/root/.m2
-v ~/.npm:/root/.npm

3. Ubuntu 系统资源不足

Jenkins 本身 + 构建进程吃资源。

常见瓶颈

  • CPU 核数少
  • 内存不足(< 4G 很吃力)
  • 磁盘 IO 差(云盘尤其明显)

检查

top
free -h
iostat -x 1

4. Git 拉取慢

  • 仓库大(含 binaries)
  • 未使用 shallow clone
  • GitHub / GitLab 在国外

优化

checkout([
  $class: 'GitSCM',
  extensions: [[$class: 'CloneOption', depth: 1, shallow: true]]
])

二、Jenkins 自身配置问题

5. 构建节点是 master 且负载高

  • UI 和构建混在一起
  • 并发任务多

建议

  • 使用 Agent(SSH / Docker)
  • master 只做调度

6. 插件过多或版本过旧

  • 插件启动慢
  • 兼容性问题导致卡顿

建议

  • 只装必要插件
  • 定期升级 Jenkins LTS

7. 构建脚本本身慢

  • 单线程构建
  • 重复测试
  • 未并行执行 stage

优化示例

parallel {
  stage('Test A') { ... }
  stage('Test B') { ... }
}

三、Ubuntu / 环境问题

8. DNS 解析慢

Ubuntu 默认 systemd-resolved 有时很慢。

排查

time curl https://maven.aliyun.com

解决

/etc/resolv.conf
nameserver 223.5.5.5

9. 磁盘满或 inode 耗尽

df -h
df -i

10. 安全软件 / 杀毒扫描

  • ClamAV
  • 企业安全 agent

会显著拖慢文件操作。


四、快速定位方法(推荐)

  1. 看 Jenkins 构建日志卡在哪一步
  2. 在 Ubuntu 上手动执行该步骤
  3. 用 time 测耗时
  4. 分段优化(网络 → 缓存 → 资源)

五、一句话总结

Ubuntu 上 Jenkins 部署慢,90% 是“依赖下载 + 无缓存 + 资源不足”三类问题。

如果你愿意,可以告诉我:

  • Jenkins 版本
  • 构建类型(Maven / npm / Docker / shell)
  • 是否用 Agent
  • 构建日志卡在哪一步

我可以直接帮你给出针对性优化方案。

0 踩