1. 硬件资源优化
/var/lib/jenkins)放在SSD上,而非传统HDD。SSD的高速读写性能可显著减少构建过程中文件读取、写入的延迟,尤其适合频繁访问构建日志、依赖库的场景。sudo fallocate -l 4G /swapfile创建4GB交换文件,然后依次执行sudo chmod 600 /swapfile、sudo mkswap /swapfile、sudo swapon /swapfile启用,最后将/swapfile none swap sw 0 0添加到/etc/fstab实现开机自启。2. Jenkins配置优化
/etc/default/jenkins,修改JAVA_ARGS参数设置初始堆(-Xms)和最大堆(-Xmx)。建议将两者设置为相同值(如-Xms2048m -Xmx2048m),避免堆内存动态扩展带来的性能损耗。需根据服务器内存大小调整,避免设置过大导致系统内存耗尽。Manage Jenkins > Configure System)中,找到“并发构建”选项,设置合理的并发数量(如2~4)。过高的并发会导致CPU、内存资源竞争,降低整体构建效率。3. 插件管理优化
Manage Jenkins > Manage Plugins),卸载不再使用的插件(如旧版SCM插件、未使用的通知插件)。插件过多会增加Jenkins启动时间和运行时内存消耗。Manage Plugins中的“Available” tab查看并更新插件。/etc/default/jenkins,添加JENKINS_UC_MIRROR=https://mirrors.tuna.tsinghua.edu.cn/jenkins,然后重启Jenkins。4. 流水线设计优化
sh、bat命令(如重复的cd切换目录、无用的echo输出),避免无效操作消耗时间。parallel指令将可并行任务(如单元测试、代码静态检查、打包)分配到多个节点或线程执行。例如:pipeline {
agent any
stages {
stage('Build') {
parallel {
stage('Unit Test') { steps { sh 'mvn test' } }
stage('Lint Check') { steps { sh 'eslint .' } }
}
}
stage('Deploy') { steps { sh 'mvn deploy' } }
}
}
~/.m2/repository、npm的node_modules),避免每次构建都从远程仓库下载依赖。例如,Maven项目可添加:pipeline {
agent any
stages {
stage('Build') {
steps {
dir('~/.m2') {
sh 'mvn dependency:go-offline'
}
sh 'mvn package'
}
}
}
}
5. 分布式构建配置
Manage Jenkins > Manage Nodes and Clouds添加Slave节点(物理机、虚拟机或Docker容器均可),将构建任务分配到Slave执行,减轻Master节点的压力。例如,添加Docker容器作为Slave:docker run -d --name jenkins-slave -e JENKINS_URL=http://master-ip:8080 -e JENKINS_SECRET=your-secret -e JENKINS_AGENT_NAME=slave1 jenkins/agent
6. 构建过程优化
mvn compile默认会进行增量编译。mvn package替代手动javac+jar)。7. 定期维护与监控
Manage Jenkins > Configure System中设置“保留构建天数”或“保留构建数量”。htop、glances等工具监控Jenkins服务器的CPU、内存、磁盘I/O使用情况,及时发现资源瓶颈(如CPU占用率持续高于80%)。Performance Plugin,分析构建任务的耗时(如阶段耗时、步骤耗时),定位性能瓶颈(如某个测试用例执行时间过长)。