You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins目录du查询显示21G但内部文件仅236K问题求助

问题原因

  • 核心原因是已被逻辑删除的文件仍被Jenkins进程持有句柄未释放:删除旧构建、旧workspace时Jenkins服务处于运行状态,部分正在被写入、引用的日志、临时文件、构建缓存文件虽然已经从文件系统目录中移除,但只要进程还持有文件句柄,Linux系统不会真正回收对应磁盘空间。此时du统计目录总占用会计算这部分未释放的空间,而进入目录罗列文件时看不到已经被删除的文件,就会出现两个统计结果差异极大的情况。
  • 次要可能是统计时遗漏了隐藏文件:如果进入目录后仅统计了可见文件,忽略了.开头的隐藏目录(如插件临时缓存、全局日志目录)也会出现统计偏差,但21G和236K的巨大差值基本可以排除该可能。

解决方案

  1. 先确认问题根因
    执行命令查看是否存在已删除但被Jenkins持有的文件:
    lsof | grep /var/lib/jenkins | grep deleted
    如果输出结果中存在大量带deleted标记的文件,且总大小接近21G,即可确认是进程持有已删文件句柄导致的问题。

  2. 释放磁盘空间

  • 优先选择无风险方案:重启Jenkins服务,执行命令systemctl restart jenkins(若为systemd管理的Jenkins部署),进程重启后所有已删除文件的句柄会被自动释放,磁盘空间会即时回收。
  • 若不允许重启Jenkins:可以找到对应已删除文件的句柄编号手动清理,该操作有概率导致Jenkins进程异常,不建议新手使用。
  1. 规避后续重复出现该问题
  • 配置Jenkins丢弃旧构建规则时,勾选安全删除相关选项,确保Jenkins主动释放文件句柄后再执行删除操作。
  • 删除workspace前先确认对应构建任务已完全停止,没有进程读写该目录下的文件。
  • 定期清理Jenkins冗余文件时,优先使用Jenkins自带的清理插件,不要直接在系统层执行rm命令删除文件。

内容的提问来源于stack exchange,提问作者user1910769

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 02:54:10