温馨提示×

centos运行jenkins卡怎么办

小樊
50
2026-09-12 05:02:24
栏目: 智能运维

在 CentOS 上运行 Jenkins 卡顿,通常是内存不足、Java 参数不合理、插件过多或系统资源被占用导致的。下面按「排查 → 优化 → 应急」给你一套实用方案。


一、先快速排查(定位卡在哪)

1️⃣ 看系统资源

top
free -h
df -h

重点关注:

  • 内存是否快满(free 很小)
  • CPU 是否被 Jenkins 占满
  • 磁盘是否 100%(尤其是 /var)

2️⃣ 看 Jenkins 进程

ps -ef | grep jenkins

或

systemctl status jenkins

3️⃣ 看 Jenkins 日志

tail -f /var/log/jenkins/jenkins.log

常见现象:

  • OutOfMemoryError
  • GC 频繁
  • 插件加载慢

二、最常见原因 & 解决方法(90% 情况)

✅ 1. 内存太小(最常见)

Jenkins 默认吃内存很狠。

建议最低配置:

  • 测试环境:2G
  • 生产环境:4G+

修改 Jenkins 内存参数

编辑:

vim /etc/sysconfig/jenkins

或(CentOS 7+ systemd):

vim /usr/lib/systemd/system/jenkins.service

修改:

JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m"

Java 8 用 PermSize
Java 11+ 用:

JAVA_OPTS="-Xms1024m -Xmx2048m"

然后:

systemctl daemon-reload
systemctl restart jenkins

✅ 2. 插件太多 / 插件卡死

  • 禁用不用的插件
  • 更新插件到稳定版
  • 尤其是:
    • Git
    • Pipeline
    • Blue Ocean(可选)

安全模式启动(只加载核心)

systemctl stop jenkins
java -jar /usr/lib/jenkins/jenkins.war --safe

✅ 3. 构建任务太多/并发太高

  • 限制并发构建数
  • 避免所有任务同一时间跑

Jenkins → 系统管理 → 节点管理 → 设置执行器数量(建议 = CPU 核数)


✅ 4. Swap 没开(物理内存小必开)

dd if=/dev/zero of=/swapfile bs=1M count=2048
mkswap /swapfile
swapon /swapfile

永久生效:

echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

三、系统级优化(CentOS)

1️⃣ 关闭不必要服务

systemctl disable postfix
systemctl disable cups

2️⃣ 使用轻量 JDK

推荐:

  • OpenJDK 11(稳定)
  • 不要混用 Oracle JDK

四、紧急情况(卡死不动)

强制重启

systemctl stop jenkins
pkill -9 java
systemctl start jenkins

清空卡死任务

rm -rf /var/lib/jenkins/jobs/*/builds/*

五、长期建议

  • Jenkins 单独一台机器
  • 构建放 Agent(不在 Master 上跑)
  • 定期清理历史构建
  • 使用 Docker 版 Jenkins(资源更可控)

如果你愿意,可以贴一下:

  • free -h
  • top 截图
  • Jenkins 版本 & JDK 版本

我可以直接帮你算该给多少内存最合适。

0 踩