df -Th与du -sh数据显示不一致,df -Th显示异常原因
#场景:服务器上kafka某日志写入异常,一天时间打了80,将日志删除后,df -Th 发现磁盘使用了180G,du -sh /data目录总共使用了100G。两个命令数值不同。
解决办法
.首先查看/目录挂载的设备是否正常,发现/挂载点额设备是正常的80g,排除挂载问题
.使用
lsof | grep delet
命令查看正在使用的已删除的文件,发现存在多个这样的文件,kill掉进程,问题解决
原因
1.使用rm命令删除文件时,只有当该文件不存在任何link才会被删除。当有进程访问这个文件时,i_count会增加1,该线程只要没被关闭,文件的实际占用空间就不会释放
2.du是根据文件名进行的空间统计,使用rm时该文件对系统来说已经不可见,所以不会统计这个文件。df则是磁盘实际占用的数量。参考:http://blog.csdn.net/liudunxu123/article/details/1982372