我们在使用磁盘统计的时候,经常用到df和度命令, 但是很多时候都发现不太一致.其实主要分下面两类情况

一、僵尸进程

通过top命令可以统计僵尸进程:

image.png

也可以通过以下命令进行操作

ps -ef | grep defunct | grep -v grep | wc -l

如果发现有的话,可以清理一波,用如下命令:

ps -e -o ppid,stat | grep Z | cut -d '' -f2 | xargs kill -9

注意: 僵尸进程一次不一定能被清理干净,可以多清理几次.

二、删除的文件被进程占用

df 统计的时候是从文件系统考虑的,不仅包含文件系统大小,还要统计被命令或者程序占用的空间,

例如 文件已经被删除,但是被某个进程持有。其原理是读取每个分区的superblock来获取空闲数据块、已使用数据块,从而计算出空闲空间和已使用空间,因此df统计的速度极快(superblock才占用1024字节)。所以非常快。

既然文件已经被删除了为何还不释放呢? 文件已经被删除,但是被某个进程持有。这种情况就不会释放。

如何查找出这些僵尸文件呢?

lsof |grep deleted

找到的结果就是一些文件已经被删除,但是空间还没有释放的。可以很久实际情况将持有的改文件的PID kill掉来释放空间。

可以使用如下命令批量删除。 生产环境谨慎操作。

for i in `lsof |grep deleted |awk '{ print $2 }'` ; do kill -15 $i ;done

三、du和df的原理

du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数,因为是stat所以所有类型的 ”文件” 都可以统计的到;而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。

du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。

linux 文件大小总和,linux磁盘占用跟每个文件夹大小总和不符?相关推荐

  1. linux每个磁盘大小,linux磁盘占用跟每个文件夹大小总和不符

    [LeetCode] Assign Cookies 分点心 Assume you are an awesome parent and want to give your children some c ...

  2. Windows上获取文件大小的几种方法及获取文件夹大小方法

    文章来自:https://blog.csdn.net/mfcing/article/details/53184921 获取文件大小 Windows提供了好几个API函数来获取文件大小,还可以使用标准C ...

  3. linux看10g文件,Linux 查看文件和文件夹大小

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

  4. 查看linux显示文件大小,Linux下查看占用最大的文件和文件夹大小

    不知道大家有没有遇到过这种情况,就是经常会出现linux文件磁盘空间不足导致的网站打不开,面板登录不上的情况,小魏今天就遇到了,空间占用爆满,小魏进行清理占用最大文件,网站恢复,那么这个时候我们就会想 ...

  5. Linux 文件大小 文件夹大小 磁盘大小

    du -sh 查看当前文件夹下文件与文件夹大小: df -hl 查看磁盘空间大小: 参考文献:www.cnblogs.com/adolfmc/archive/2013/02/16/2913801.ht ...

  6. linux 查看磁盘空间 文件 文件夹 大小

    只查看一级目录统计的空间占用 [root@swarm-node1 sdb]# du -h -d1 57M ./leo_log_test 69G ./dsp-bidder-logs 980K ./she ...

  7. Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限

    一台老的PHP后台服务器,今天用 free -m 查看,发现内存跑满了. 再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用0.9%,那是什么占用的呢?谷歌了一 ...

  8. Linux C语言磁盘U盘容量读取、目录列表读取、文件夹大小读取

    Linux C语言磁盘U盘容量读取.目录列表读取.文件夹大小读取C语言源代码 #include <stdio.h> #include <sys/statfs.h> #inclu ...

  9. linux 查看文件夹大小及文件大小

    一.查询文件夹大小 1.最简单的查看方法可以使用ls -ll.ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB.MB等为单位进行显示,这样比较直观一些. 2.通过命 ...

最新文章

  1. helper.js(20170612)
  2. 陶哲轩实分析命题10.1.7
  3. 为什么linux自带python_为什么一些linux自带python,而不是C,C++,java等其他编程语言?...
  4. mysql 异步_MySQL -- 异步I/O
  5. 清华大学镜像_国内开源镜像站信息盘点
  6. 车厢重组(信息学奥赛一本通-T1310)
  7. AI又抢了人类职位,这回轮到银行销售人员了?
  8. WannaCry反思:传统安全理念遭遇马奇诺防线式溃败
  9. PythonServer
  10. JavaScript运算符运算优先级
  11. Ubuntu系统下把视频转换成gif图片
  12. NAO机器人语音识别
  13. 《Openwrt开发》第四章:newifi3 实现内网穿透(n2n)
  14. python3爬虫有道翻译_【Python3爬虫】有道翻译
  15. Nodejs爬虫自动爬取百度图片
  16. 动态范围控制(DRC)简介
  17. 5个超棒的自我提升App
  18. Docker -v 对挂载的目录没有权限 Permission denied解决办法
  19. 服务器控件与客户端控件
  20. 读书笔记—别让情绪毁了你(插图精读本)

热门文章

  1. [PY3]——IO——文件目录操作
  2. 关于discuz 不能全文搜索的问题
  3. 【bzoj2330】 [SCOI2011]糖果
  4. linux,下载与安装
  5. start running 开始跑步减肥
  6. 代码覆盖度-NCover监控IIS和exe,结果分析
  7. 什么是元宇宙、新基建、赛博空间?7个最火科技名词解释,都在这里了
  8. 15万个监控摄像头被黑,医院、学校、监狱都被看得一清二楚
  9. 4款深度学习框架简介,初学者该如何选择?
  10. 当年发明hello, world的大神,后来怎么样了?