LINUX空间管理之du与df命令查看磁盘容量不一致问题

这篇具有很好参考价值的文章主要介绍了LINUX空间管理之du与df命令查看磁盘容量不一致问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题现象

在Linux系统的运行过程中,会经常遇到磁盘使用率过高,通过执行dudf命令查看磁盘容量确出现不一致的现象,例如以下几种现象:

  • 执行dudf命令显示的结果不一致,dfdu命令显示的数据大很多。

  • 使用df命令显示磁盘使用率过高,但是执行du命令统计目录时却磁盘使用率不高,且查不到已删除的句柄文件。

  • 当前系统存在数据盘挂载点,使用df命令查看系统盘容量已满,但是在根目录下使用du命令统计各文件总容量,但是合计达不到总容量。

二、原因分析

首先了解下du和df的工作原理:

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

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

其次,出现du和df统计的值有较大偏差时,主要会有以下几种原因:

  • 1、用户删除了大量的仍在使用的文件后,du命令不会在文件系统目录中统计这些文件。因为这个已经被删除的文件句柄不会真正在磁盘中被删除,分区超级块中的inode信息不会更改,df命令仍会统计这个被删除的文件。 此时可通过lsof命令查询处于deleted状态的文件,被删除的文件在系统中被标记为deleted。如果系统有大量deleted状态的文件,会导致dudf命令统计结果不一致。

  • 2、当用du -sh *命令来统计某个目录总容量时,如果该路径下包含隐藏文件,是不会包含在统计结果里的。

  • 3、由于数据盘挂载前该路径下就存在文件,挂载后用du无法查询到原路径下文件大小。

三、处理建议

  • 1、先通过lsof|grep delete查询目标目录下是否有被标记为已删除的文件,如有通过重启该文件所使用的进程可释放空间。(如是日志类文件,在暂时无法重启程序的情况下,也可通过进入/proc/进程ID/fd目录下,找到删除的文件,然后执行清空命令,可临时释放空间的问题。)

  • 2、在目标目录下,执行du -ah命令统计结果中看是否包含较大的隐藏文件。

  • 3、排除了1和2的原因检查后仍未解决问题,考虑可停业务应用,卸载数据盘后再次使用du命令查询,看是否定位到原因。

  • 4、以上排除均未找到问题,建议对所有应用程序进行一个停止,观察是否有释放,从而进行进一步定位。

  • 5、一时半会找不到原因的,也可通过扩容文件系统,先降低高水位情况, 再持续分析,毕竟扩容也只是治标不治本。

    最后,如果觉得本文对你有帮助,欢迎点赞、收藏、评论!

    There are many things that can not be broken!文章来源地址https://www.toymoban.com/news/detail-594580.html

到了这里,关于LINUX空间管理之du与df命令查看磁盘容量不一致问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux磁盘空间与文件大小查看命令详解

            在Linux系统中,有多个命令可以用来查看磁盘空间的使用情况。最常用的命令是 df (disk free)。 df 命令的 -h 选项以人类可读的方式显示磁盘空间,该命令将显示文件系统的使用情况、剩余空间等信息。         为了查看特定文件夹的大小,我们可以使用 du (

    2024年01月20日
    浏览(47)
  • Linux 清理磁盘空间&使用du指令排查服务器磁盘占用过大的文件

    命令:df -h 参数说明: -a:列出所有的文件系统,包括系统特有的/proc等文件系统 -k:以KB的容器显示各文件系统 -m:以MB的容量显示各文件系统 -h:以人们较易阅读的GB,MB,KB等格式自行显示 -H:以 M=1000K代替M=1024K的进位方式 -T:连同该分区的文件系统名称(例如ext3)也列出

    2024年02月06日
    浏览(42)
  • linux du命令解析(递归计算文件子目录大小)(计算大小)(计算容量)

    du 命令用于查看文件或目录的磁盘使用情况。它会递归地计算指定目录下所有文件和子目录的大小,并以可读性较好的方式显示出来。 用法 常用选项 -h :以人类可读的方式显示文件大小。 -s :仅显示总计大小,不显示每个文件和目录的详细信息。 -c :同时显示总计大小。

    2024年02月05日
    浏览(35)
  • linux:du和df区别

    du 和 df 都是 Linux 系统中用于查看磁盘空间使用情况的命令,但它们的功能和用法有所不同。 du 是 “disk usage” 的缩写,用于显示文件或目录的磁盘使用情况。 du 命令用于查看指定文件或目录的磁盘空间使用情况,可以递归地查看目录下所有文件和子目录的大小。 详细用法

    2024年04月09日
    浏览(31)
  • Linux基础命令-du查看文件的大小

    du 命令介绍 语法格式 基本参数 参考实例 1)以人类可读形式显示指定的文件大小 2)显示当前目录下所有文件大小 3)只显示目录的大小 4)显示根下哪个目录文件最大 5)显示所有文件的大小 6)只显示目录下的文件,不显示目录下的子目录 ll -h与du -h命令的区别  命令总结

    2024年02月08日
    浏览(38)
  • Linux磁盘管理指令df-man帮助手册

    Linux磁盘管理指令df-man帮助手册

    2024年01月24日
    浏览(32)
  • Linxu 查看磁盘空间命令

    Linxu 查看磁盘空间命令 前言 项目上有个需求,当磁盘空间达到阈值时,就触发磁盘空间不足告警。造模拟数据时,需要在服务器上监测磁盘空间状况,此时就用到了 查看磁盘空间的命令 。 Linux 查看磁盘空间可以用 df 和 du 命令。 df 介绍:df 以磁盘分区为单位查看文件系统

    2024年02月08日
    浏览(29)
  • Ubuntu 查看磁盘空间大小命令

    df命令是Linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 文件系统              容量 已用 可用 已用% 挂载点 Filesystem            Size Used Avail Use% Mounted on /dev/hda2              45G   19G   24G 4

    2024年02月17日
    浏览(34)
  • 查看磁盘信息命令和查看目录以及文件占用空间大小命令

    记录 :313 场景 :在CentOS 7.9操作系统,查看磁盘信息命令、查看目录以及文件占用空间大小命令。主要是df、du、lsblk、fdisk、parted、pvdisplay、vgdisplay、lvdisplay、free等命令。 版本: 操作系统:CentOS 7.9 1.df命令 查看文件系统占用磁盘空间大小。df,disk free简称。 (1)查看帮助 命

    2024年02月07日
    浏览(35)
  • 查看Linux磁盘空间

    在 Linux 系统中,可以使用以下命令来查看磁盘空间的使用情况: 1. `df` 命令 该命令会列出当前系统所有挂载的文件系统以及它们的使用情况,包括总容量、已用空间、可用空间、使用百分比等信息。 2. `du` 命令 该命令会计算指定目录下所有文件和子目录所占用的磁盘空间大

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包