Linux,du、df统计的硬盘使用情况不一致问题
[转]http://blog.linezing.com/?p=2136
Linux,du、df统计的硬盘使用情况不一致问题
在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使用df -lh命令来检查每个挂载了文件系统的硬盘的总量和已使用量,或者,可以使用du -sh [directory]命令来统计某个目录下所有文件的空间占用。
在使用df、du命令时,常常会遇到统计的硬盘使用情况不一致的问题。比如du统计根目录下文件总共大小为2G,而df判断挂载在根目录的硬盘已用空间达到了3G,20G甚至更多。发生这种情况,有以下三种原因:
1.预留空间
为了预防紧急情况,linux ext文件系统会预留部分硬盘空间,具体预留的数值可以通过tune2fs -l [dev_name] | grep “Reserved block count”查看到(dev_name是设备名),这里预留的空间会被df计算到已用空间中,从而导致df和du统计不一致。如果需要调整预留空间大小,我们可以使用tune2fs -m [size] [dev_name]来进行调整。
2.幻影文件(phantom file)
du是统计被文件系统记录到的每个文件的大小,然后进行累加得到的大小,这是通过文件系统获取到的。而df主要是从超级块(superblock)中读入硬盘使用信息,df获取到的是磁盘块被使用的情况。当一个文件被删除时,如果有别的进程正在使用它(占有句柄), 这个文件将不会被du统计到,但是这个文件被占用的磁盘空间却依然会被df统计到。这些文件,以及正在使用这些文件的进程可以通过lsof | grep deleted查到。当进程停止或者被kill时,这些空间将被释放。
3.未统计到的文件
如果上面两种情况都排除了,但是数据还是不一致,那是怎么回事?这里隐藏着一种情况:当我们将一个目录挂在到一个新的设备(硬盘)上之前,如果这个目录里面已经有数据,那么这一部分数据不会被du感知,在文件系统中也看不到这些数据,但是这些数据又是确实占用了磁盘空间,是能够被df所统计到的。这时候通过du/df统计原设备的空间使用情况,就会发现df统计到的比du要多。遇到这样的情况时,使用fuser -km [directory]杀死占用该目录的所有进程(小心操作!),然后使用umount [directory]将该目录挂载的设备卸载,这时,目录里面原来已有的数据就会出现,我们将其删除之后,再重新挂载设备(mount -t [type] [dev] [directory])即可。
Linux,du、df统计的硬盘使用情况不一致问题的更多相关文章
- df和du显示的磁盘空间使用情况不一致的原因及处理
在Linux下查看磁盘空间使用情况,最常使用的就是du和df了.然而两者还是有很大区别的,有时候其输出结果甚至非常悬殊. 1. 如何记忆这两个命令 du-Disk Usage df-Disk Free ...
- df和du显示的磁盘空间使用情况不一致问题
背景介绍: dba同事删除了mysql /datao目录下的文件,通过du –sh查看空间使用700G,df -h查看空间使用1T,没有重启mysql服务. 另一个表现出du与df命令不同之处的例子如 ...
- linux du df ls
du可以查看文件和文件夹的大小,df主要查看数据库大小,查看分区的的磁盘使用情况,ls可以添加-h参数,方便我们查看文件大小 df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为 ...
- Linux,du、df统计磁盘情况不一致
转载:http://blog.linezing.com/?p=2136 在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使用df -lh命令来检查每个挂载了文件系统的硬盘的总量和 ...
- du df 磁盘命令
du命令是检查硬盘使用情况,统计文件或目录及子目录使用硬盘的空间大小.参数的不同组合,可以更快的提高工作效率,以下仅列出了经常使用到的参数,如需更详细的信息,请用man du命令来获得. 说明 - ...
- linux du和df
df.du和fdisk这三个常用命令:df用于检查文件系统磁盘占用情况,du检查磁盘空间占用情况,而fdisk用于磁盘分区. du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,d ...
- df 和du 命令统计磁盘空间不准确
Linux & Unix 中 df 和 du 命令统计磁盘空间数值不一致 经常会使用 df 和 du 分别查看磁盘空闲空间和占用空间,偶尔会发现 df(空闲空间) 会小于磁盘大小减去 du(占 ...
- Linux指令--df,du
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...
- 41、解决du与df统计不一致的解决方法
41.1.案例说明: 通过df -hT和du -sh /.du -h --max-depth=1 /命令 发现磁盘的使用不量不一致,使用'df -hT'命令查看磁盘的使用量要 比使用'du -sh / ...
随机推荐
- python向数据库插入中文乱码问题
1.python向数据库插入中文乱码问题 直接手动insert into 中文 不乱码,但是用程序跑起来就乱码. conn =MySQLdb.connect(host="127.0.0.1& ...
- 从一个简单的Tab切换开始——与AJAX的结合
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java_脚本引擎_01_用法入门
一.前言 最近有个需求,需要在js中调用java,这样能避免更新java,从而实现代码的热更新. 于是想到用 Nashorn JavaScript 引擎. 二.概述 通过 JDK 8 的 Nashor ...
- 服务器端使用DeferredResult异步推送技术
注意1: org.springframework.web.context.request.async.DeferredResult; 是Spring4.0以后的版本才有的,注意Spring版本,然后添 ...
- 树莓派视频监控 —— 使用 mjpg
下载到树莓派本地: $ wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip $ unzip master.zip ...
- HihoCoder1366 逆序单词(字典树)
逆序单词 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在英文中有很多逆序的单词,比如dog和god,evil和live等等. 现在给出一份包含N个单词的单词表,其中每 ...
- storm 学习教程
转自:http://blog.csdn.net/hrn1216/article/details/51538962 翻译太累了,再也不想去翻译了,真的太累了: 在这个教程中, 你将学到如何创建一个Sto ...
- LeetCode 298. Binary Tree Longest Consecutive Sequence
原题链接在这里:https://leetcode.com/problems/binary-tree-longest-consecutive-sequence/ 题目: Given a binary t ...
- loj 6085.「美团 CodeM 资格赛」优惠券
题目: 一个有门禁的大楼,初始时里面没有人. 现在有一些人在进出大楼,每个人都有一个唯一的编号.现在有他们进出大楼的记录,但是有些被污染了,只能知道这里有一条记录,具体并不能知道. 一个人只有进大楼, ...
- AngularJS:HTML DOM
ylbtech-AngularJS:HTML DOM 1.返回顶部 1. AngularJS HTML DOM AngularJS 为 HTML DOM 元素的属性提供了绑定应用数据的指令. ng-d ...