当服务器硬盘(
Linux)快速填满大量小文件时,我会不时遇到问题.当发生这种情况时,我必须设法弄清楚占用了多少空间以及占用空间的文件.这可能是令人惊讶的令人沮丧的任务,因为:
>只是做一些简单的事情,比如在包含大量文件的目录中运行ls可能需要很长时间.
> df很快,但不准确和不精确
> du是准确的,可以告诉你所有空间的去向,但需要永远运行
我想快速准确地知道,我的所有空间都放在硬盘上,数百万个小文件可能占用了数TB的空间.
对于传统的文件系统来说,这似乎是不可能的(如果没有,我想听听它)
我的问题是Linux上可用的任何新文件系统(btrfs,zfs,reiserfs等)是否具有可能有助于解决此问题的超级聪明功能.例如,我可以想象某种日志 – 每次写入时都会不断更新 – 包含文件系统中每个分支占用的空间量的记录.然后问我的问题只是阅读日志的问题.
这只是一个可能有用的功能的一个例子,但我要求提供任何可能有助于回答问题的功能的例子:快速准确地告诉我,确切地说,在我的硬盘上使用空间的位置磁盘.
谢谢,
汤姆
解决方法
我在你提到的列表中只有ZFS的经验.使用ZFS,您可以制作分层卷,例如,您可以制作;
>坦克/类别
>罐/类别/产品
>罐/类别/产品/ a
>罐/类别/产品/ b
等等
使用命令“zfs list”,您可以在几秒钟内获得每个卷的已用空间,可用空间和参考空间.但是只有当你能够让你的应用程序以正确的方式分割它时,才能使用此功能.