0

0

lsof +L1 显示大量 (deleted) 文件占用空间的批量安全释放

舞夢輝影

舞夢輝影

发布时间:2026-01-24 17:47:27

|

465人浏览过

|

来源于php中文网

原创

lsof +L1 显示的 (deleted) 文件仍占磁盘空间,是因为文件被 unlink 后只要进程未关闭 fd,内核就不释放数据块;需精准定位 PID、确认文件类型与进程可重启性后,通过优雅重启或谨慎使用 gdb 强制 close 释放。

lsof +l1 显示大量 (deleted) 文件占用空间的批量安全释放

为什么 lsof +L1 显示的 (deleted) 文件实际还在占磁盘空间

Linux 中文件被 unlink()(如 rm)后,只要仍有进程打开该文件描述符,内核就不会真正释放 inode 和数据块——文件名消失、ls 看不到,但 lsof +L1 能列出这类“已删除但未关闭”的条目。磁盘空间不会回收,直到所有持有该 fd 的进程退出或主动 close()

如何安全批量释放这些 (deleted) 占用

不能直接 kill 进程——可能中断业务;也不能指望进程自己关闭——有些长期运行的服务(如 Java 日志轮转失败、Node.js 流未销毁、rsync 临时文件残留)会持续 hold 住 fd。关键在于:精准定位 + 可控释放。

  • 先用 lsof +L1 | awk '{print $2}' | sort -u 提取唯一 PID 列表
  • 对每个 PID,检查其占用的 (deleted) 文件路径和大小:lsof -p <pid> | grep 'deleted'</pid>
  • 优先处理日志类(/var/log/...)、临时目录(/tmp/...)、容器 overlay 中的 deleted 文件
  • 确认进程可重启或支持热重载(如 nginx -s reloadsystemctl kill --signal=SIGUSR1 <service></service>)再操作
  • 若进程不支持优雅关闭,且空间告急,可用 gdb 强制 close(高风险,仅限调试环境):
    gdb -p <PID> -ex 'call close(<FD>)' -ex 'detach' -ex 'quit'

lsof +L1 的常见误判与过滤技巧

不是所有 +L1 输出都值得干预。有些是预期行为,比如 systemd-journald 的内存映射日志、Docker 容器的 /dev/pts 残留、或某些语言 runtime 的内部临时文件。盲目清理可能引发异常。

PPT.AI
PPT.AI

AI PPT制作工具

下载
  • 排除 journald:lsof +L1 | grep -v 'systemd-journal'
  • 排除容器 runtimes:lsof +L1 | grep -E -v '(containerd|dockerd|crio)'
  • 按大小排序看真凶:lsof +L1 -s | sort -k7,7nr | head -20-s 启用 size 列)
  • 注意 FD 类型:REG(普通文件)才真正占磁盘;CHR/FIFO/ANON 不占空间

释放后空间未立即恢复?检查挂载点和文件系统特性

即使成功 close 所有 fd,df 仍显示空间未释放,大概率是以下原因:

  • 文件系统为 XFS 且启用了 inode64 或延迟日志,需等待 log flush,通常几秒内自动恢复
  • 挂载点被 bind mount 或 overlayfs 覆盖,真实空间在底层设备上,检查 df -h .df -h / 是否指向不同设备
  • ext4 使用了 delalloc 特性,缓存未刷盘,可手动触发:sync && echo 3 > /proc/sys/vm/drop_caches(仅测试环境建议)
  • 容器场景下,宿主机 df 看的是 overlay lowerdir/upperdir,需进容器 df 对比,或查 du -sh /var/lib/docker/overlay2/*/diff

最常被忽略的是:一个 deleted 文件被多个进程同时打开——必须全部 close 才能释放。别只杀主进程,漏掉子进程或守护线程。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

248

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

244

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

713

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3618

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

56

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

72

2026.01.13

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

25

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号