Jenkins服务器磁盘空间爆满问题解决

现象:

今天接到运维同事通知,说我们测试服务器磁盘空间不足,感觉很奇怪,以前没有出现这种现象的。

通过追踪查询,发现是jenkins的构建纪录未清理,而且最近我们项目测试构建很频繁,导致磁盘最近爆涨。

Jenkins服务器磁盘空间爆满问题解决_第1张图片

注:查看隐藏文件的命令:

du -sh .[!.]* * | sort -hr

解决方法:

1、手工删除构建记录

这是最基本的一种操作方法,通过直接物理删除构建记录进行磁盘空间管理。手工删除构建记录方式如下:
进入Jenkins根目录,Windows下默认位于当前用户目录中的.jenkins文件夹。
手工删除构建记录,构建记录位于.jenkins\jobs\XXX\builds中(其中XXX为具体项目名称)。根据需要直接删除对应的构建历史即可。

Jenkins服务器磁盘空间爆满问题解决_第2张图片

2、转移磁盘空间

转移磁盘空间的思路是通过改变Jenkins的默认主目录达到把构建记录转移到其他磁盘的方式。以Windows系统为例,通常用户目录所在的磁盘会安装很多软件导致磁盘空间处于不充裕的状态,而其他磁盘空间则可以进行动态划分和管理。如果能把Jenkins构建记录存放到相对较大而又可以动态管理的空间中无疑会在很大程度上解决磁盘空间不足的问题。具体操作方式也非常简单:
1、创建Jenkins根目录环境变量JENKINS_HOME,将该环境变量映射到具体某个工作目录
2、重启Jenkins即可

当然,转移磁盘空间只是一种相对优化的策略,如果构建需求量非常巨大,该策略通常也是治标不治本,所以我们还有第三种策略。

3、 自动丢弃构建历史数据

一次构建包含两方面的产物:构建记录和构建工件。构建记录是一种跟踪、分析和反馈的依据,具有保存价值;而已经过时的构建工件则通常可以直接丢弃。基于以上思路,Jenkins为我们提供了“丢弃旧的构建”配置功能,通过进行合理配置即可达到保存构建记录丢弃构建工件的效果,配置方式如下:

Jenkins服务器磁盘空间爆满问题解决_第3张图片

在这里我们需要填写自定义的丢弃旧的构建设置,这里我们将“保持构建的天数”以及“发布包保留天数”均设置为7天,将“保持构建的最大个数”设置为30条,而我们每次取用jar包或war包时都只想获取最新版本,所以说我们这里只保存最新版的软件版本信息,因而在“发布包最大保留#个构建”中填写1,填写完之后,点击【保存】按钮即可使新的设置生效。

你可能感兴趣的:(Java)