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方面真的很快,所以……这里是每个人的点数! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |