流水线跑一半就失败,日志末尾只写没有空间写入,服务器上其他服务也开始报错,磁盘占用到了百分之百,清理之后当天能恢复,第二天同样的位置又被填满。

原因不止一个,得分开看。历史构建产物和日志长期不清理。另一种情况是构建工作区残留了大量临时文件。

另外,镜像与依赖缓存持续堆积。

先确认磁盘占用

df -h /var/lib/jenkins

然后找出占空间最多的目录

du -sh /var/lib/jenkins/* | sort -rh | head

接着配置构建保留策略

ls /var/lib/jenkins/jobs/*/builds | wc -l

末了清理旧工作区

find /var/lib/jenkins/workspace -maxdepth 1 -type d | head

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

别只看报错消失,验证要多做一步。磁盘占用回到安全线以下,流水线能完整跑完,构建日志正常写入。

补一句。清理前核对保留策略,别把要留的产物删了;把构建目录单独挂一块盘,能避免拖垮系统盘。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189