Linux目录已空但磁盘空间仍被占用的原因与解决方法
最近在使用 /mnt/pmem3
做测试时,发现一个奇怪现象:
$ ls /mnt/pmem3 |
目录里几乎没文件,但磁盘使用率却高达 70%。
原因分析
这是因为有文件虽然已经被删除,但仍然被进程占用。在 Linux 中,文件被删除后,只要仍有进程打开它,系统就不会真正释放空间。
这类问题在数据库、日志系统、持久内存(如 DAX)场景中很常见。
解决方法:使用 fuser
找出占用进程
使用以下命令查看哪些进程还在使用 /mnt/pmem3
:
sudo fuser -vm /mnt/pmem3 |
如果确认这些进程可以终止,直接杀掉它们即可:
sudo fuser -km /mnt/pmem3 |
也可以用kill -9 <pid>
强制终止进程。
然后再次查看磁盘占用,空间就释放了:
df -h /mnt/pmem3 |
小结
当遇到“目录已空但空间仍被占用”的问题时,记得:
- 使用
fuser
检查是否有进程仍在使用该目录 - 杀掉相关进程后空间会自动释放
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 Yuan的博客!