我的外部 USB3 硬盘 (*) 在磁盘为空(没有普通文件;使用量少于 10MB)时,其读/写速度明显高于磁盘满(250 万个文件;使用量约 1TB)时。
下表列出了希捷 3TB 硬盘测量测试平台app 并使用dd
(**) 命令。在 Xbench 中,分数越高意味着磁盘速度越快。在dd
输出(秒)中,分数越低意味着速度越快:
╔═════════════╦════════╦══════╗
║ Disk config ║ XBench ║ dd ║
╠═════════════╬════════╬══════╣
║ Empty ║ 140 ║ 25s ║
║ 1/3 full ║ 100 ║ 56s ║
╚═════════════╩════════╩══════╝
所以性能下降至少30%!为什么?我使用这些驱动器在 iMac 上克隆了 OSX 系统的备份,因此它们包含大量文件,但所有文件都是在一个大的写作任务中写(使用 Carbon Copy Cloner),这意味着磁盘不应该有太多碎片。此外,已填满的驱动器只填满了 30%,因此还有足够的剩余可用空间。
这种速度下降是正常的吗?如何解释这种情况?是否存在一个公式可以告诉我速度降低程度与驱动器的填充程度之间的关系?
(*)我使用的硬盘是希捷扩展 2TB和WD My Book Studio 3TB。它们通过 USB3 直接连接到我的 iMac。
(**)下面是我用来测试(写入)速度的 dd 命令:dd bs=1024k count=4096 if=/dev/zero of=/Path/To/Volume/test
答案1
由于您有太多小文件,性能下降可能是由于文件系统开销造成的。
尝试将由 250 万个文件组成的 1TB 数据替换为仅由几个非常大的文件组成的 1TB 数据,然后运行相同的基准测试。
正如 @Josh Vazquez 提到的,HDD 在填满时确实会失去性能,但根据我所看到的情况,当驱动器约占 1/3 时,性能下降应该只会大约 10%,而不是像您看到的那样下降 30% 或更多。