du和df

文章讨论了在删除大文件后,du和df显示不同空间占用的原因,因为进程可能继续占用已删除文件,df统计的是整个文件系统,而du仅统计目录树。使用lsof找到问题根源,以及ext3FAQ中的说明,强调了两者在统计上的区别:df包括元数据,而du不包含。

du 和df  不一致的问题:

情况如下:

innode 没有满

同事求助, 他在删掉一个很大的文件后, 磁盘空间依旧没释放。上去一看, 果然 df 看到磁盘空间占用依旧是100%,等等 du 看了一把,磁盘空间剩余很大。 

       造成这个原因是因为进程依旧打开着删除的文件,而文件不存在与目录树中了,所有du统计的时候就不会统计就不会统计这个文件占用的空间了(而df 统计文件系统的总块数和剩余块数)

可以通过lsof查看具体是那个进程打开着这些被删除了的文件:
lsof | grep delete
果然,他删掉的是mysql的慢日志, mysql依旧打开着这个文件。
ext3 的FAQ里有提到这个问题
http://batleth.sapienti-sat.org/projects/FAQs/ext3-faq.html
 
另外,值得一提的是df和du的区别
du是统计的目录树上文件的大小, df命令则查看文件系统的磁盘分配情况并考虑Meta Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。例如,一个frag=4096 并且 nbpi=4096的空的大小为4MB的日志文件系统中Meta Data的分配情况如下: 
1 4k block for the LVM 

2 4k super blocks 
2 4k blocks for disk maps 
2 4k blocks for inode maps 
2 4k blocks for .indirect 
32 4k blocks for inodes 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值