从我目前出现故障的硬盘来看,我知道我正在以大约 300kB/s 的写入速度擦除它,因为至少有几个坏扇区
我很好奇到底是什么原因导致了这种缓慢的写入速度?例如,假设使用 Linux 程序 dd 写入磁盘,通常至少可以达到 75MB/s,假设扇区大小为 4kB,则写入一个 4kB 扇区大约需要 0.05 毫秒(如果我的计算正确 ^^)。如果我以 300kB/s 的速度写入故障磁盘,则意味着 4kB 大约需要 13 毫秒。
那么,假设一个编写良好的用户空间应用程序能够以 75MB/s 的速度写入,是什么原因导致速度下降到 300kB/s?我不认为 Linux 内核有某种“睡眠”或如此高的重试尝试,以至于需要更长时间才能注意到写入失败?还是磁盘本身会减慢一切速度?如果是,为什么?我认为物理磁盘会立即知道数据是否可以写入?为什么故障磁盘会变慢?
答案1
如果是物理损坏,硬盘可能无法正常工作(例如,需要多次重试写入,正在尽最大努力从损坏的扇区读取等...),因此必须减慢速度。
答案2
如果它出现故障,或者换句话说,它在某种程度上受到了损坏,那么它的性能无法达到 100% 是正常的。我们谈论的是硬件物理损坏,而不是软件相关问题。
如果您的汽车引擎受损,您会惊讶地发现它无法全速行驶吗?
如果硬盘上有坏扇区,系统几乎(或根本不)读取/写入这些扇区,因此可能会挂起。
我曾经遇到过类似的问题,硬盘上有一些损坏的扇区,SMART 报告显示它有几次旋转重试。结果是整个系统运行非常缓慢,因为它不断尝试访问损坏的数据。