我最近购买了 Seagate Barracuda 硬盘(称为 SMR),用作主要读取存储。
当通过 rsync 填充数据时,我得到以下行为:预期前 30GB-100GB 左右的速度约为 50-100MB/s,然后缓慢地停止在 <1MB/s 的速度下,直到 rsync 进程终止并重新启动后,这种情况才会自行解决,在这种情况下,它会立即恢复到完全写入速度。
虽然我以为自己已经意识到了 SMR 的缺点,但我预计重写将在后台进行,并且吞吐量会出现波动,而无需手动重新启动进程。
写入负载主要是 5-50mb 大小的文件,Linux 5.4.0 x86_64,涉及的所有驱动器都是本地 SATA。
答案1
我在存档模式下运行它,没有进行校验和,并且 CPU 大部分处于空闲状态。当驱动器的容量超过 50% 时,“立即”部分不再有效,并且需要一段时间的磁盘空闲才能获得快速写入突发,这仍然无法解释为什么 rsync 会在驱动器几乎为空的情况下以低速卡住而无法恢复,我的猜测是,由于驱动器不断收到写入请求,它永远没有机会进行 SMR 重组,即使短暂休息也可以按照 @Mokubai 的说法完成