文档章节

Linux,du、df统计的硬盘使用情况不一致问题如何处理

P
 PACIDC
发布于 2015/11/04 10:24
字数 822
阅读 431
收藏 0
点赞 0
评论 0

在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使用df -lh命令来检查每个挂载了

文件系统的硬盘的总量和已使用量,或者,可以使用du -sh [directory]命令来统计某个目录下所有文件的空间占用.

在使用df、du命令时,常常会遇到统计的硬盘使用情况不一致的问题.比如du统计根目录下文件总共大小为2G,

而df判断挂载在根目录的硬盘已用空间达到了3G,20G甚至更多。发生这种情况,有以下三种原因:

  • 预留空间

为了预防紧急情况,linux ext文件系统会预留部分硬盘空间,具体预留的数值可以通过

tune2fs -l [dev_name] | grep “Reserved block count”查看到(dev_name是设备名),

这里预留的空间会被df计算到已用空间中,从而导致df和du统计不一致。如果需要调整预留空间大小,

我们可以使用tune2fs -m [size] [dev_name]来进行调整.

  • 幻影文件(phantom file)

du是统计被文件系统记录到的每个文件的大小,然后进行累加得到的大小,这是通过文件系统获取到的.

而df主要是从超级块(superblock)中读入 硬盘使用信息,df获取到的是磁盘块被使用的情况.

当一个文件被删除时,如果有别的进程正在使用它(占有句柄), 这个文件将不会被du统计到,

但是这个文件被占用的磁盘空间却依然会被df统计到.

这些文件,以及正在使用这些文件的进程可以通过lsof | grep deleted查到。当进程停止或者被kill时,这些空间将被释放.

  • 未统计到的文件

如果上面两种情况都排除了,但是数据还是不一致,那是怎么回事?

这里隐藏着一种情况:当我们将一个目录挂在到 一个新的设备(硬盘)上之前,如果这个目录里面已经有数据,

那么这一部分数据不会被du感知,在文件系统中也看不到这些数据,但是这些数据又是确实占用了 磁盘空间,

是能够被df所统计到的。这时候通过du/df统计原设备的空间使用情况,就会发现df统计到的比du要多。

遇到这样的情况时,使用fuser -km [directory]杀死占用该目录的所有进程(小心操作!),

然后使用umount [directory]将该目录挂载的设备卸载,这时,目录里面原来已有的数据就会出现,我们将其删除之后,

再重新挂载设备(mount -t [type] [dev] [directory])即可.


© 著作权归作者所有

共有 人打赏支持
P
粉丝 0
博文 15
码字总数 9990
作品 0
武汉
第九章 Linux系统下分区、格式化磁盘,学会挂载和卸载磁盘

1. 请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别? /dev/hda, /dev/hdb 是 IDE借口硬盘的块文件。 /dev/hda 第一块IDE磁盘 ; /dev/hdb 第二块IDE磁盘...

WINWINJJ ⋅ 2016/10/17 ⋅ 0

linux 查看磁盘信息

more /proc/partitions 查看所有分区信息 more /proc/scsi 查看scsi设备(移动硬盘或U盘)信息 more /proc/diskstats 查看磁盘io信息 查看文件占用的内存: 当磁盘大小超过标准时会有报警提示...

今天来找bug ⋅ 2016/03/16 ⋅ 0

Linux分区与磁盘管理

1、概述 首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(PrimaryPartion)和扩展分区(Extension Partion)两种,基本分区和扩展分区的数目之和不能大于四个。...

zengxiantao1994 ⋅ 2017/09/28 ⋅ 0

linux系统磁盘block、inode占满处理

磁盘占满分两种情况,然后分别执行下面两个命令,看看自己属于哪种情况 磁盘block占满,查看命令: df -vh 磁盘inode 占满,查看命令: df -ih 一、block占满处理办法 需要用到的命令如下: ll ...

游骑兵vtx ⋅ 2017/09/19 ⋅ 0

centos磁盘满了,查找大文件并清理

centos磁盘满了,查找大文件并清理 2013年07月29日 ⁄ 综合 ⁄ 共 1172字 ⁄ 字号 小 中 大 ⁄ 评论关闭 今天发现vps敲入crontab -e 居然提示 “Disk quota exceeded” 无法编辑。于是"df -...

thinkyoung ⋅ 2015/04/09 ⋅ 0

理解df和du命令

df可以查看一级文件夹大小、使用比例、档案系统及其挂入点。 du可以查看文件及文件夹的大小。 df命令可以显示目前所有文件系统的可用空间及使用情形 参数 -h 表示使用「Human-readable」的输...

Yisen ⋅ 2011/04/07 ⋅ 0

Linux下查看文件和文件夹大小的df和du命令

当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大...

phacks ⋅ 2015/02/07 ⋅ 0

Linux系统下查看目录大小(复制别人的,还没有实践)

我们有个系统每天要下载数据,为了检查下载数据是否正常,需要查看下载数据目录大小,因为每天的数据都差不多,如果变化太大就说明不正常。查看目录大小的命令是du(当然也可以查看文件大小)...

萧小蚁 ⋅ 2015/10/07 ⋅ 0

Linux下查看文件和文件夹大小

当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大...

kisshua ⋅ 2013/12/19 ⋅ 0

du查看的目录大小与df查看的大小不同的时候用lsof查找

首先MAN一下俩个命令,看一下解释的区别: du - estimate file space usage df - report file system disk space usage du估计文件空间占用情况,df报告文件系统磁盘空间使用情况。两个命令所...

zphj1987 ⋅ 2012/09/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部