转载于:https://www.cnblogs.com/longchang/p/10768111.html

在linux系统上有时发现使用df 查看磁盘已使用空间和使用du统计的不相等,例如:

[running]root@slave11:/$ df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1             9.9G  4.0G  5.4G  43% /

/dev/sda3              20G  1.4G   18G   8% /usr/local

/dev/sda4             244G  215G   17G  93% /data

tmpfs                  32G   52K   32G   1% /dev/shm

/dev/sdb1             9.9G  151M  9.2G   2% /data1

[running]root@slave11:/data$ du -sh

182G    .

从这里面可以看出通过du看到使用了182G,但是通过df 看,/data目录已使用215G,这是什么原因呢?

先讲du和df原理

du的工作原理

du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。

df命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分区元数据的,所以只能针对整个分区。由于df直接读取超级块,所以运行速度不受文件多少影响。

原因有两个:

1、硬盘本来有保留空间,可以通过tune2fs -r 40000 /dev/sda4进行设置

2、已经被删掉的文件还有程序在占用,所以文件没被真正释放

针对第二种原因,可以通过如下步骤验证查看及释放空间

1、lsof |grep deleted > deleted_file查看有哪些未被释放的文件

2、排序看最大的未被释放的文件大小,命令:sort -nr -k 7 deleted_file>sort_deleted_file

3、more sort_deleted_file 查看前面那些文件,将占用空间大的程序kill掉

kill 进程号

实例:

➜  pydata df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/cluster_vg-cluster_lv   12G   11G  1.9G  85% /home/pydata

➜  pydata lsof |grep deleted
rpc.mount 17821            root    6r      REG              253,0           0  100949767 /var/lib/nfs/etab.tmp (deleted)
smbd      20496            root  cwd       DIR              253,3        3864    1684953 /home/pydata/pandx (deleted)
smbd      20496            root   10u      REG              253,3 10737418240    1684988 /home/pydata/pandx/vdb.1_1.dir/vdb_f0001.file (deleted)

➜  pydata kill -9 20496

➜  pydata kill -9 17821

➜  pydata df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/cluster_vg-cluster_lv   12G  137M   12G   2% /home/pydata

linux df -h显示空间信息不正确相关推荐

  1. Linux df -h 显示磁盘空间满,但实际未占用满——问题分析

    问题现象 工作中遇到一个问题,在 TX2 系统上,告警提示磁盘空间不够,如图所示 wohu@wohu:/$ df -h Filesystem Size Used Avail Use% Mounted ...

  2. df -h显示磁盘使用情况

    df -h显示磁盘使用情况 网易 博客  摄影  随便看看 注册 登录 流浪地图 首页 日志 相册 音乐 收藏 博友 关于我 日志 流浪者   加博友   关注他 最新日志 nokia2100 常用s ...

  3. df -h 显示100%的解决办法

    总结 1. df -h 命令可以查看根目录的使用情况 2. du -sh * 命令可以查看当前目录所有文件和文件夹的大小 3. 进程所属的日志文件即使被删除,只要进程还在,空间一样不释放,谨记!!!! ...

  4. Linux | 云盘扩容后,lsblk显示已增加,df -h显示没变化

    一.项目背景   教育部相关技术平台中,使用的是天翼云,其系统盘是40GB,数据盘独立200GB,数据盘通过挂载的方式,挂载到了目录 /usr/local/string.操作过程如下: mkdir / ...

  5. linux df -h指令,Linux df 命令使用参数详解

    df命令用来检查linux系统的文件系统的磁盘空间使用情况. 语法及格式 df [选项] [文件名] 常见参数 -a:--all,显示所有的文件系统,包括虚拟文件系统,参考示例2. -B:--bloc ...

  6. Linux df -h

    df -h :显示目前在Linux系统上的文件系统的磁盘使用情况统计. Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称: Used:表示用掉的磁盘空间大小: Availab ...

  7. linux df -h卡成狗

    今天遇到一个很奇怪的问题,在一台linux执行df -h查看磁盘使用情况,发现卡成狗,于是着手去解决: 1.通过strace df -h追踪是卡在什么位置 [root@new_web ~]# stra ...

  8. Linux:df -h

    1.文件系统  容量  已用  可用  已用占比   挂载点 (列标题) df -h 2.du -h --max-depth=1 du -h 命令与df -h 命令不同的是 du -h 是对文件和目录 ...

  9. Linux df -h查看磁盘使用情况

  10. Linux执行 df -h 无显示(centos/redhat)

    今日进行服务器巡检时,突然发现执行df -h命令,执行完成后,无任何显示. mtab与fstab区别 /etc/mtab:记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;/etc/f ...

最新文章

  1. SQL Server 2008编写脚本时智能提示功能丢失的处理
  2. 桌面云实验环境的部署配置
  3. 《算法竞赛进阶指南》打卡-基本算法-AcWing 94. 递归实现排列型枚举:dfs、二进制状态压缩
  4. 大话设计模式(九 反射——程序员的快乐!)
  5. Oracle日期转换处理
  6. Adobe Reader 背景色修改
  7. 结巴分词优点_中文分词概述及结巴分词原理
  8. Chrome 键盘快捷键(Mac)
  9. 安装sql2012 需要安装net3.5 没有的话 安装不成功
  10. 真香!8 行代码搞定最大子数组和问题
  11. 2021新茶饮研究报告
  12. bash 的环境配置文件
  13. python画相关性可视化图_Python可视化matplotlibseborn16-相关性热图
  14. You have to specify ‘-keep‘ options for the shrinking step
  15. 2017嵌入式软件行业现状及概述
  16. 《自然语言处理实战入门》---- 第1课:自然语言处理简介
  17. 2019第七届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)
  18. install diagnostic_updater
  19. 通知提示音修改默认铃声
  20. eNSP基础命令_01

热门文章

  1. 如何查找论文是否被SCI,EI检索
  2. 史上最全股票指标图文详解
  3. python 对正整数分解质因数
  4. TCA9548A IIC多路扩展模块使用
  5. Java微信小微商户进件,已经解决接口暂无权限,稍后再试的问题
  6. java实现有限自动机_Java 实现一个非确定性有限自动机(NFA)
  7. 电脑C盘内存不足?三分钟教你彻底清理C盘空间,瞬间多出10个G
  8. 微信小程序金额千分位
  9. linux如何修改引导分区表,修改引导记录
  10. Python数据分析(二) —— 进阶绘制双折线图