写入缓存会导致性能变慢吗?

写入缓存会导致性能变慢吗?

USB 2.0 外置 WD 2TB Elements HD。

连接到 Windows XP SP3 计算机,默认情况下禁用写入缓存。工作正常。

因为它打算作为永久固定装置(永不移除)并且位于 UPS 上(因此不必担心停电),所以我决定在 Windows 中打开写入缓存,以提高性能。

一开始,我注意到 BURST 写入速度确实提高了。但是,持续写入超过一分钟左右会导致整个系统速度大幅下降,并导致驱动器几乎锁定,从而导致任何其他 I/O 操作失败。几分钟后,它会恢复正常。

禁用写入缓存,重新启动,然后一切恢复正常。发生了什么?

编辑:使用通过第三方 IDE 转 USB 电缆连接的不同 WD 内置驱动器进行测试,结果相同。打算挖出一台旧的 Seagate 并对其进行测试...

答案1

我能想到两种可能性。

写入缓存会导致 Windows 开始缓存写入内存的数据。由于您的硬盘比 USB 外部(或技术上是 USB 接口)更快,文件开始堆积在内存中。根据您的工作量,这可能会导致程序超出内存。所以你现在有问题了。数据正在从硬盘读取。但现在 Windows 需要将程序从内存中分页,因为缓存正在快速填满。这可能会导致很多磁盘读写。

这通常不会导致其他 I/O 操作失败。您应该发布确切的错误消息。就是这样罕见且令人担忧因为它可能预示着比操作系统错误消息更糟糕的事情。

第二种可能性是当您的外部驱动器收到刷新缓存命令时发生的情况。Windows 在较长的 IO 写入操作期间定期向磁盘发送“缓存刷新”命令。这可以防止断电期间数据丢失。发生这种情况时,Windows 会停止发送数据,直到磁盘的缓存被刷新。在此期间,您的源驱动器仍在旋转,将数据读入内存以准备发送到外部驱动器。

还有第三种可能性,但让我们从小事做起。

顺便说一句,这种突发写入速度只是为了给用户留下深刻印象,并不是真的。Windows 发送数据的速度并不比 IO 写入中间和结束时快。

如果你回想一下统计课,你的预测准确性会随着你的样本量变得越来越小

相关内容