流水线跑一半就失败,日志末尾只写没有空间写入,服务器上其他服务也开始报错,磁盘占用到了百分之百,清理之后当天能恢复,第二天同样的位置又被填满。
原因不止一个,得分开看。历史构建产物和日志长期不清理。另一种情况是构建工作区残留了大量临时文件。
另外,镜像与依赖缓存持续堆积。
先确认磁盘占用
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
白天有业务在跑,能验证的部分都压到了晚上做。
当时还开着另一个排查窗口,两边日志对照着看才定位到。
别只看报错消失,验证要多做一步。磁盘占用回到安全线以下,流水线能完整跑完,构建日志正常写入。
补一句。清理前核对保留策略,别把要留的产物删了;把构建目录单独挂一块盘,能避免拖垮系统盘。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。