首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >被写缓存标志弄糊涂了

被写缓存标志弄糊涂了
EN

Server Fault用户
提问于 2017-04-27 09:25:37
回答 3查看 305关注 0票数 1

我希望通过启用写缓存来最大化我的硬盘驱动器的性能。我理解这样做的风险,但相信它们对于我如何使用它来说是微不足道的。

在Windows中的HD Properties选项卡上,最后两个选项有点混乱:

Enable write caching on device -好的,但是如何与前面的选项一起工作呢?它是覆盖了windows缓存,还是与它一起工作?

Turn off Windows write cache -好吧,但我为什么要这么做呢?如果我勾选这个框,那么更好的性能选项仍然会被选中,这与它本身是矛盾的。

有人能帮助弄清楚这些标志到底是干什么的,以及它们是如何相互影响/相互依赖的吗?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2017-05-10 04:04:31

您必须了解数据是如何写入磁盘的。

在将数据从进程写入物理磁盘的过程中,您有两个子系统。

通常,进程要求内核( OS)向磁盘写入一些东西。此外,内核本身也可以将一些数据写入磁盘,例如作为交换操作。

需要写入磁盘的内存页保存在名为文件系统缓存的物理内存中的区域中,称为脏页,如果其中一种条件为真,则将将其写入磁盘:

  • 这个过程是要求内核使用FlushFileBuffers调用将数据写入磁盘。
  • 自上次写入磁盘以来的过了一段时间
  • 如果文件系统缓存没有空闲内存(如果内核应该丢弃非脏页、写入磁盘脏页、交换不活动内存页等,则是一个复杂的决定.)

现在,数据将转到磁盘,但是磁盘子系统有两个组件,这些组件对这一解释很重要:

  • 磁盘控制器,它是磁盘上的电子板。
  • 永久存储器,可以是磁盘或闪存。

现代磁盘控制器有一些称为磁盘缓冲器的内存模块。如果激活,数据刷新到磁盘子系统将被写入磁盘缓冲区,操作将被操作系统和程序视为完成,但数据尚未在磁盘上。这方面的问题是,如果您重新启动您的机器,您有很高的机会丢失数据。在文件系统损坏或数据库损坏之前,您可能不会注意到这一点。

以下是进程或操作系统需要将数据刷新到磁盘的原因:

  • 它们为事务系统(如数据库或文件系统)提供了一个日志,并且需要对写入磁盘的数据执行一致性和完整性。
  • 他们完成了一个重要的操作,比如创建一个文件和磁盘缓冲区,以确保整个文件都在磁盘上。
  • 不良编程

当前的配置是性能和安全之间的最佳权衡,除非您有UPS (不间断电源)。

票数 1
EN

Server Fault用户

发布于 2017-05-04 17:04:54

第二个选项不是您所说的"windows缓存“,而是”刷新“系统调用的抑制:Turn off Windows write cache buffer flushing

此选项将禁用某些应用程序(以及机器关机时)调用的刷新命令,其目的是有效地将磁盘缓存写入磁盘。

它不会禁用写缓存。

您可以尝试启用此选项,以避免数据丢失,但取决于您的上下文,性能增益可能不明显。

票数 1
EN

Server Fault用户

发布于 2017-05-05 23:17:48

实际上,在删除策略中强调了不同之处。这个问题看起来类似于:https://superuser.com/questions/215372/what-does-write-cache-buffer-flushing-mean

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/846845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档