【Linux-运维】已删除文件占用磁盘

来源:互联网 发布:ubuntu禁用nouveau 编辑:程序博客网 时间:2024/04/28 17:09

今天遇到一个已删除文件占用磁盘的情况,这里记录简单的分析和处理流程

背景:

1、接收到磁盘告警后,用df -h查看,磁盘的使用率是93%。
2、使用du -h --max-depth=1查看高负载磁盘时,各文件占用都不是很高。

问题:

df和du的执行结果不一致,无法定位到大文件路径并清理文件

问题分析:

初步怀疑有进程占用已经被删除的大文件,导致文件无法被释放

具体原因:

Linux下的文件,只有在引用数为0的情况下才会真正被删除掉,之前所占用的空间是不会被释放的。
如果存在文件引用,系统会将该文件标记为已删除,在引用此文件的进程都关闭时(文件引用数为0时),最终删除文件,释放空间资源。

解决方案:

1、【找出被删除的占用文件】lsof -n | grep grep deleted
2、【释放被占用空间】使用kill pidkill -9 pid杀掉进程后,再重启服务

总结:

这里可以看出,df和du的执行结果是有区别的,那这两个命令的执行流程如何?是什么导致输出结果不同,【Linux-运维】df和du的命令区分

原创粉丝点击