在 CentOS 上调整 Jenkins 的内存,通常分为 Jenkins 自身 JVM 内存 和 系统层面内存 两部分。下面按最常见场景说明。
Jenkins 运行在 Java 上,内存主要靠 JVM 参数 控制。
CentOS 下常见位置:
/etc/sysconfig/jenkins
或(新版 Jenkins):
/etc/systemd/system/jenkins.service.d/override.conf
/etc/sysconfig/jenkins(推荐)编辑文件:
vi /etc/sysconfig/jenkins
找到或添加:
JENKINS_JAVA_OPTIONS="-Xms512m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m"
示例说明:
-Xms:初始堆内存-Xmx:最大堆内存(✅重点)✅ Java 11+ 推荐写法:
JENKINS_JAVA_OPTIONS="-Xms1g -Xmx4g"
systemctl edit jenkins
写入:
[Service]
Environment="JAVA_OPTS=-Xms1g -Xmx4g"
保存后执行:
systemctl daemon-reload
systemctl restart jenkins
| Jenkins 用途 | 推荐 Xmx |
|---|---|
| 少量任务 | 1~2 GB |
| 中型 CI/CD | 2~4 GB |
| 大量 Job / 构建 | 4~8 GB |
| 同时跑多个流水线 | 8 GB+ |
⚠️ 不要超过系统物理内存的 70%
ps -ef | grep jenkins
应看到类似:
-Xms1g -Xmx4g
Jenkins → 系统管理 → 系统信息
查看:
java.vm.namesun.arch.data.modeljava.opts解决:
free -h
top
✅ 删除:
-XX:PermSize
-XX:MaxPermSize
java -Xms512m -Xmx1g -jar jenkins.war
vi /etc/sysconfig/jenkins
# 修改
JENKINS_JAVA_OPTIONS="-Xms1g -Xmx4g"
systemctl restart jenkins
如果你愿意,可以告诉我:
我可以帮你给出 最优内存参数。