Windows 会对 SSD 关闭 Superfetch 吗

作者:一年又一年 分类: 📐 技术 发布时间:2019-11-8 1:02 4672 次浏览 0 条评论

【本文状态:草稿】

有很多说法称,如果 Windows 安装在 SSD 上,那么 Windows 默认不会启用 Superfetch 功能。

但我观察到我自己所使用的 Windows 10 却发现,尽管系统安装在 SSD 上,但似乎仍启用着 Superfetch 功能。

于是继续了解了一下。


首先是这则问答:

https://zhidao.baidu.com/question/96522455.html

在固态硬盘上会禁用SuperFetch么?

会,但不是绝对。

微软最初打算完全在固态硬盘上禁用SuperFetch,但在部分系统上碰到了大幅度的性能衰退,后来发现第一代固态硬盘的随机写入和擦除操作过于频繁,最终导致读取速度变得极慢,而开启了SuperFetch和其它预取技术后,性能明显回升。

这则问答的回复时间是 2016 年。


这则问答的内容和下面这篇发表于 2010 年 10 月的帖子里的陈述很接近:

https://forum.51nb.com/thread-1008519-1-1.html

用了SSD的兄弟注意,不是所有Win7都默认关闭SuperFetch的

intel X25MG2已经使用快一年了,装的86元32位win7,一直以来都相信网上的说法,单一SSD安装win7是默认关闭superfetch和prefetch的(具体说法请自行谷歌败毒)。但是,今天到intel官方更新了intelssdtoolbox,里面有系统设置检查工具,见图1,发现我的系统并没有默认关闭superfetch,打开注册表检查,这两个键值都是默认的3。而intel的建议是关闭它。这里给各位兄弟提个醒,还是按照intel的要求,关了这个吧。随后根据网上的说法,找到了默认关闭说法的来源,微软win7在MSDN的官方博客,查看英文原文发现,人家也不是说默认都是关闭的,只是说大多数情况(most)是关闭的。开始的时候,微软确信使用SSD的时候,superfetch应该关闭,但是发现第一代SSD的随机读取写入特别频繁,最终导致读取速度极慢,打开superfetch等功能可以使性能明显回升。我理解的不一定准确,具体参看微软win7在MSDN的博客英文原文。 http://blogs.msdn.com/b/e7/archi ... ate-drives-and.aspx

……

帖子里提到了微软的一篇 2009 年的技术博文,并且帖子里附上了那篇博文的链接。由于 uri 地址变更,帖子里提供的链接现在已经无法直接访问相应文章页了。这是那篇博文现在的地址:

https://blogs.msdn.microsoft.com/e7/2009/05/05/support-and-qa-for-solid-state-drives/

这是一篇 Q&A 文,有一则谈到了这个问题。

Will Superfetch be disabled on SSDs?

Yes, for most systems with SSDs.

If the system disk is an SSD, and the SSD performs adequately on random reads and doesn’t have glaring performance issues with random writes or flushes, then Superfetch, boot prefetching, application launch prefetching, ReadyBoost and ReadDrive will all be disabled.

Initially, we had configured all of these features to be off on all SSDs, but we encountered sizable performance regressions on some systems. In root causing those regressions, we found that some first generation SSDs had severe enough random write and flush problems that ultimately lead to disk reads being blocked for long periods of time. With Superfetch and other prefetching re-enabled, performance on key scenarios was markedly improved.

可见,一开始对 SSD 都关闭 superfetch,后来又因为存在性能问题而重新放开了在 SSD 上启用 Superfetch,这个说法确有其事。


不过,时光荏苒,这个阐述其实也已经过时了。

我所使用的 SSD 按道理已经远成熟于当年初代 SSD 了,可现实是仍启用了 Superfetch。


在查找上面这些文章的同时,我还找到另外一篇讨论,这篇讨论发布在微软的技术论坛:

https://social.technet.microsoft.com/Forums/windows/en-US/9cdb257b-3c65-46e2-9cf4-3f3bda999346/why-does-windows-8-not-automatically-disable-superfetch-on-ssd

Why does Windows 8 not automatically disable Superfetch on SSD?

Hello! Windows 7 used to disable Superfetch automatically if it detects a fast SSD as system drive. But Windows 8 doesn't. In this respect i found an interesting statement from Intel in the help section of the SSD Toolbox:

"In Microsoft Windows 8, Superfetch functions differently than in previous versions of Windows, and should not be disabled for an Intel SSD." But i can't find any official statement or explanation from Microsoft for this topic.

My questions: What is the difference between the Superfetch service in Windows 7 and the Superfetch service in Windows 8? What did MS changed? Why does it now make sense for a SSD?

♥ 若您欲转载敝站的原创内容,还请您附注出处及相应链接

发表评论

* 标注的项目为必填项。

您的邮箱地址将不会在页面中公开
您的站点地址将会被检查,如被认为不适则可能被移除
Ɣ回顶部