微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 确定Inode使用的位置

我最近在开发Web服务器上安装了Munin来跟踪系统使用情况.我已经注意到系统的inode使用量每天增加大约7-8%,即使磁盘使用量几乎没有增加.我猜是有些东西正在写大量的小文件,但我无法找到/在哪里.

我知道如何查找磁盘空间使用情况,但我似乎无法找到总结inode使用情况的方法.

是否有一种很好的方法来确定目录的inode使用情况,以便找到使用的来源?

解决方法

不要指望这个快速运行……

cd到您怀疑可能存在包含大量inode的子目录的目录.如果此脚本花费大量时间,您可能会在文件系统中找到要查找的位置. / var是一个好的开始……

否则,如果您切换到该文件系统中的顶级目录并运行它并等待它完成,您将找到包含所有inode的目录.

find . -type d | 
while 
  read line  
do 
  echo "$( find "$line" -maxdepth 1 | wc -l) $line"  
done | 
sort -rn | less

我并不担心分拣的成本.我运行了一个测试并对未分类输出进行排序,对350,000个目录进行了8秒.最初的发现花了.实际成本是在while循环中打开所有这些目录. (循环本身需要22秒). (测试数据在一个包含350,000个目录的子目录上运行,其中一个目录有一百万个文件,其余的目录在1到15个目录之间).

不同的人都指出ls并不是很好,因为它对产量进行了分类.我试过回声,但这也不是很好.其他人指出stat提供了这个信息(目录条目数),但它不可移植.事实证明,找到-maxdepth在打开目录和计算.files方面真的很快,所以……这里是每个人的点数!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐