我目前正在测试 S3 命令行工具的性能,并使用我用 Fallocate 创建的文件来测试它们。我正在测量不同工具将 200 个文件(每个文件大小为 1MB)上传到 S3 存储所需的时间。与我自己创建的其他文件(例如 1MB 大小的 .txt 文档)相比,我使用 Fallocate 创建的文件之间是否有区别?或者使用 fallocate 创建的 test.txt 文件与使用记事本创建的 test.txt 完全相同吗?
我想确保我所做的测试是现实的,而不仅仅是快速,因为 Fallocate 创建了不同类型的文件。
答案1
根据所使用的工具和所使用的文件系统,可能会有差异。
从应用程序的角度来看,fallocate
创建的文件通常都是零;您的测量时间将会出现偏差,如果您使用内置压缩或重复数据删除的协议或文件系统,测量时间会受到更大的影响,因为传输/写入的数据量永远不会反映对等效文件的相同操作通过其他方式创建的相同大小。
也作为斯蒂芬·查泽拉斯正确指出,文件显示为包含 0,因为范围被标记为“未写入”。当读取这些时,系统甚至没有读取磁盘就返回 0。
最好使用 .txt 文件,或者更好的是使用随机二进制数据生成的文件。