与Windows 7磁盘策略选项一样:
[x] Enable Write Caching on the device
[ ] Turn off Windows write-cache buffer flushing on the device
第一个是物理磁盘上的缓存,第二个是windows的缓存吗?
(我已经用 Google 搜索过,但没有找到明确的答案)。
答案1
请参阅“更多信息”部分http://support.microsoft.com/kb/332023:
许多磁盘设备通过以下方式提供增强的性能使用板载缓存,它为正在从磁盘读取的数据提供预读缓存,并为正在写入磁盘的数据提供后写缓存(或延迟写入或“懒惰”写入)。在某些情况下,重要的是将数据立即写入物理磁盘,而不是保留在磁盘的板载写入缓存中,以便在空闲时刻稍后写入。这可以防止磁盘或控制器(无论写入缓存在哪里实现)突然断电时丢失或损坏这些数据
写入缓存极大地提高了磁盘性能,因此请将其保留在内部硬盘上。
Windows 默认关闭闪存驱动器和其他 USB 硬盘驱动器的写入缓存,通常您不必修改这些设置,Windows 会为您处理。
答案2
我总是每次都关闭后写式缓存。从一开始,这都是一个坏主意。我是这样解释的:如果您在文字处理文档上单击“保存”,并且电源出现故障,并且关闭了后写式缓存,则不会保存您的文档(直到自动保存启动)。关闭后写式缓存会强制它在您单击保存时实际将您的文件写入磁盘。这同样适用于断电、BSOD、程序崩溃等。
答案3
这两个设置都与内部磁盘缓存有关。第一个设置启用/禁用写入缓存。第二个设置更有趣,显然对不同的 ATA/ATAPI 控制器的影响略有不同。有一次,我运行了一个分析器来拦截带有默认 Windows 驱动程序和 SATA HDD 的英特尔串行 ATA 存储控制器命令。启用此选项后,即使 Windows 刷新缓存(FlushFileBuffers、CcFlushCache 等),日志中也不会出现 IRB_FUNCTION_ATA_FLUSH 和 IRB_FUNCTION_ADAPTER_FLUSH 命令,这些命令会告诉磁盘清除其内部缓冲区。禁用此选项后,这些命令会定期发送。带有本机/非本机驱动程序的 AMD SATA 的行为略有不同。并且有不同的注册表设置。但事实是,此设置大大减少了刷新次数。此外,无论使用哪种设置,刷新命令都会在电源切换前和关机前发送。
答案4
基于旧新事物博客文章听起来第一个是操作系统缓存,第二个是磁盘内部缓存的覆盖仅在冲洗期间。
对于没有刷新的正常写入,无论第二个设置如何,都将使用磁盘内部缓存。但是,对于同步/刷新事件,默认行为是确保刷新操作系统缓存实际上将数据写入介质:明确告知驱动器也刷新内部缓存。
我不清楚关闭第一个设置是否会在每次写入时执行此磁盘刷新,甚至禁用磁盘缓存以及禁用操作系统缓存。