[ 系统篇 ] 嵌入式系统中磁盘空间占用率100%

系统OTA升级之后,发现/etc/config 分区占用率100%,着实郁闷,/etc/config 分配20M空间,实际占用的配置文件<1M, 怎么会磁盘占用率86%???

/ # df -h 
Filesystem                Size      Used Available Use% Mounted on
/dev/system               2.0G    183.7M      1.7G   9% /
devtmpfs                107.1M         0    107.1M   0% /dev
tmpfs                   116.5M     88.0K    116.4M   0% /tmp
tmpfs                   116.5M     28.0K    116.5M   0% /run
/dev/config               9.7M      7.9M      1.2M  86% /etc/config
/dev/data                 1.2G     20.0K      1.1G   0% /data

然后看了linux磁盘异常占用有了思路,系统的进程挨个排查,果然只要其中一个进程启动之后,/etc/config 占用率为86%, 瞬间排除了OTA导致的问题,定位到系统中其中一个应用程序进程导致的。

du操作

du -sh命令通过将指定文件系统路径下所有的目录、符号链接、文件使用的块数累加起来得到总块数以及总大小。它会遍历这个目录,针对所有真实存在的文件、目录等汇总,给出最终结果。所以,通过du -sh给出的已使用空间情况,肯定是真实的!1

df操作

df命令常被用来检查分区空间使用情况。它与du不同,它是查看文件系统磁盘块分配图得出总块数与剩余块数。

文件系统分配一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些称为MetaData,对于用户级程序如du是不可见的。而df命令则查看磁盘分配图并考虑MetaData。

而两者主要区别:

df 查看用使用空间大小包含了已删除但没有释放的文件
du 查看使用空间大小只包含当前文件大小

导致该问题的原因包括2
  • 磁盘分区空间实际使用率达到百分之百。
  • 磁盘分区inode使用率达到百分之百。
  • 僵尸文件:已删除文件因句柄被占用未释放导致相应空间未释放。
  • 挂载点覆盖:在原有文件系统的相应目录下已经存在大量文件。

参考

linux磁盘异常占用


  1. https://www.lastupdate.net/1617.html) ↩︎

  2. http://loney945.lofter.com/post/1d37d87a_70743fb ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序手艺人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值