“写入缓存缓冲区刷新”是什么意思


12

如Windows 7磁盘策略选项中所示:

[x] Enable Write Caching on the device
[ ] Turn off Windows write-cache buffer flushing on the device 

第一个是物理磁盘上的缓存,第二个是Windows缓存吗?

(我已经用Google搜索,但是没有找到明确的答案)。

Answers:


12

请参阅http://support.microsoft.com/kb/332023的 “更多信息”部分:

许多磁盘设备通过使用板载高速缓存来提供增强的性能,该板载高速缓存为从磁盘读取的数据提供预读高速缓存,并为正在被读取的数据提供后写高速缓存(或延迟写入或“延迟”写入)。写入磁盘。在某些情况下,很重要的一点是,必须立即将数据写入物理磁盘,而不要保留在磁盘的板载写缓存中,以便稍后在其他空闲时间写入数据。如果磁盘或控制器(无论在何处实现了写入缓存)突然断电,则可以防止此数据丢失或损坏

写缓存可以大大提高磁盘性能,因此请留给内部硬盘驱动器使用。

Windows默认情况下会关闭闪存驱动器和其他USB硬盘的写缓存,通常您不必修改这些设置,Windows会为您处理。


5
正如摩押所说。您可能要考虑关闭内部硬盘上的写入缓存的唯一原因是,如果您经常遇到电源不足或电源不足的情况。但是,如果是这种情况,那么我建议您投资一台像样的UPS,并保留写入缓存
Xantec

1
感谢您的链接!如果我正确理解它,则表示“即使软件这样也不要刷新”。我对第二种选择非常好奇,即测试SSD和HDD的构建速度。电网问题很少见,在这里确实拍拍德国工程
peterchen

1
这个答案并不能帮助我理解两个设置之间的区别。如果您在每次写入时都刷新缓存,那么您就不会缓存-以哪种方式启用了写入缓存(第一个复选框)?当禁用第二个复选框或类似的命令时,似乎更可能定期进行刷新。
山姆·布莱曼2015年

3
@SamBrightman:据了解:第一个设置启用Windows缓存-如果应用程序写入文件,则不会立即传递到磁盘。应用程序可能会调用“ flush”来强制将其物理写入。第二种选择是:当应用程序显示“刷新”时,Windows仍将其自身的缓存刷新到设备,但不会告诉设备刷新其内部缓存。这使“ flush”命令无效(因为应用程序认为数据在磁盘上是安全的)。仅当数据永久性不是优先级时才可接受。
peterchen

2

我总是每次都关闭后写缓存。从一开始这是一个坏主意。我将以这种方式进行解释:如果您在文字处理文档上单击“保存”,而电源关闭并关闭了后写缓存,则将无法保存您的文档(直到自动保存生效)。关闭“后写缓存”会强制其在您单击“保存”时将文件实际写入磁盘。停电,蓝屏死机,程序崩溃等也是如此。


1
为了全面回答问题,也许您可​​以包括如何禁用它。还要引用一些支持您立场的消息来源。
slm 2013年

3
但是,为什么会有不同呢?如果根本没有电,再单击“保存”,您将遇到完全相同的问题。
大卫·史瓦兹

1
@CodeLurker,缓存的性能优势足以使它通常值得罕见的断电风险。显然,情况将决定是否应使用它,例如电源是否可靠,主要使用哪种类型的文件等等。
Synetech

2
@Synetech基本上没有区别。有一个窗口,您可以在其中任意一种方式丢失数据,并且该窗口的大部分位于单击“保存”之前。
David Schwartz

4
在点击之前,您还可能会由于瞬间下落的小行星而被压碎,从而丢失数据[Save]。根据您的估计,您甚至根本不用理会计算机,因为不可避免地会丢失数据。◔_◔–
Synetech

0

根据Old New Thing的博客文章,听起来第一个是OS缓存,第二个是仅在刷新期间对磁盘内部缓存的替代。

对于不刷新的普通写入,无论使用第二个设置如何,都将使用磁盘内部缓存。但是,对于同步/刷新事件,默认行为是确保刷新OS缓存实际上将数据获取到介质上:告诉驱动器也明确刷新内部缓存。

我不清楚是否关闭第一个设置是否会在每次写入时刷新此磁盘,甚至禁用磁盘上的缓存以及禁用OS缓存。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.