我有一个包含大量KVM qcow2文件的文件夹,它们都是稀疏文件.
现在我需要获取文件夹的总大小,qcow2文件大小应该算作表观大小(不是实际大小).
例如:
图像:c9f38caf104b4d338cc1bbdd640dca89.qcow2
文件格式:qcow2
虚拟大小:100G(107374182400字节)
磁盘大小:3.3M
cluster_size:65536
图像应视为100G但不是3.3M
最初我使用statvfs()但它只能返回文件夹的实际大小.然后我切换到’du –apparent-size’,但是由于我有10000个文件而且它需要将近5分钟来计算,所以它太慢了.
任何人都知道一个快速的方法,可以获得计算qcow2的虚拟大小的文件夹的大小?谢谢
解决方法:
如果没有stat()目录中的每个文件,就无法找到此信息.如果在单个目录中包含这么多文件,则速度很慢. stat()需要检索每个文件的inode.
由于缓存,添加更多内存可能会有所帮助.