Jenkins 在 CentOS 上内存占用高,通常不是单一原因,而是下面几类问题叠加。下面按最常见 → 较少见给你说明,并给出排查/优化建议。
Jenkins 是 Java 应用,默认 JVM 参数往往不限制或限制很宽松。
典型表现:
java -jar jenkins.war查看方式:
ps -aux | grep jenkins
jstat -gc <pid>
✅ 解决: 限制 JVM 内存(最重要)
JENKINS_JAVA_OPTIONS="-Xms512m -Xmx2g"
CentOS 一般在:
/etc/sysconfig/jenkins
或 systemd:
/usr/lib/systemd/system/jenkins.service
Jenkins 插件质量参差不齐,常见问题:
尤其这些插件容易吃内存:
✅ 解决:
✅ 解决:
构建历史 + 工作区文件堆积:
/var/lib/jenkins/workspace✅ 解决:
du -sh /var/lib/jenkins/*
开启:
长时间运行后:
✅ 解决:
CentOS 默认可能没 swap,内存一满就卡死。
✅ 检查:
free -m
swapon -s
# 1. 看 Jenkins 占用
top -p $(pgrep -f jenkins)
# 2. 看 JVM 内存
jstat -gcutil <pid> 1000
# 3. 看磁盘
df -h
du -sh /var/lib/jenkins/*
# 4. 看并发任务
Jenkins → 构建队列
-Xms1g
-Xmx2g
-XX:+UseG1GC
并:
如果你愿意,可以把下面信息发我,我可以直接帮你判断:
free -m 输出ps aux | grep jenkins我可以进一步给你针对性优化方案。