可能导致du与df查询结果不一致的两种场景

分两种情况考虑,第一种是有大文件删除了,但是仍然被某些进程占用;第二种是文件系统碎片太多需要整理。那么如何判定和处理呢。
示例环境:
操作系统所在根目录的lvm盘 /dev/mapper/centos-root , 文件系统XFS(本文命令仅适用于XFS,其他文件系统请查询对应命令)

1. 存在已经删除的大文件被进程占用
判断方法: du 查出结果比df查到的文件系统占用空间小很多,此时可以通过lsof命令查找是否有被删除的大文件仍然被占用。
处理方法: 重启或者杀掉对应的进程,释放删除文件即可

参考文档: df和du显示的磁盘空间使用情况不一致的原因及处理 http://www.cnblogs.com/heyonggang/p/3644736.html

2. 文件系统碎片过多
判断方法: 如果上述情况不符合,并且重启机器后du和df查询结果相差仍然很大,可以通过文件系统碎片查询命令查看是否碎片比较多(xfs_db -c frag -r "device")
处理方法: 执行文件系统整理命令,可以优化存储空间分配,腾出可用空间(xfs_fsr "device")
参考文档: (原创)Linux下的磁盘碎片整理(1) http://www.cnblogs.com/h2appy/archive/2008/11/24/1339793.html
如下图所示:


你可能感兴趣的:(可能导致du与df查询结果不一致的两种场景)