Windows Readyboost 目的

Windows Readyboost 目的

我在 Google 上得到了各种各样的答案。以下是我对 readyboost 的看法:

Windows 会记录您最常用的文件/应用程序。
它们会在闪存驱动器上创建这些文件的镜像。
每当您打开应用程序或文件时,其中一些文件会从闪存驱动器加载到内存中,而另一些文件则从硬盘加载。


我还有一个问题,页面归档是否也存储在 readyboost 闪存驱动器上,这样是否能获得更大的性能提升?
此外,它是否在不断缓存(我不想耗尽 mu 闪存驱动器的使用寿命)
并且只是为了确保:Windows 不会将我的闪存驱动器用作附加内存,而是将其用于缓存。

答案1

您将 SuperFetch 与 ReadyBoost 混淆了。这里有一篇很好的文章解释了超级获取

准备好提振不同。ReadyBoost 使用 SuperFetch 技术将文件缓存到闪存介质中,以加快读取速度。它能提高性能吗?是的,但是只有在低内存系统中才会明显。现代计算机拥有足够的 RAM 和快速磁盘,因此使用 ReadyBoost 专用磁盘几乎没有好处。

但是,如果你身边有一块支持 ReadyBoost 的旧闪存盘(大多数计算机人士都有),那么就没有必要不是将它放在备用 USB 端口。这样做的好处微乎其微,但你还能用备用驱动器做什么呢?我的机器上有一个旧的 512MB 闪存驱动器,正在运行 ReadyBoost。使用 PerfMon,我可以看到它偶尔会遇到 ReadyBoost 缓存命中,所以我知道它确实在起作用,尽管它实际上没有做太多的事情。

我不会将页面文件放在 ReadyBoost 驱动器上。ReadyBoost 只应允许在可移动闪存介质(例如 USB 拇指驱动器)上使用。如果您的页面文件位于这些驱动器之一上,那么您的性能将因 USB 总线的瓶颈而降低。但是,内置 SSD 是放置页面文件的理想位置。Microsoft 甚至推荐这样做。

至于磨损你的驱动器……这是我的一个技术烦恼……我只是不明白人们为什么害怕这个。你买了驱动器使用。如果你担心会磨损,那你就不应该买它。这是“我们不使用客用毛巾”综合症。

最后,你说得对。Windows 不会将闪存驱动器用作 RAM。缓存是闪存介质的更高效使用方式,因为它的速度远不及 RAM。虽然从技术上讲,可以使用 RAM 磁盘软件执行此操作实际上会降低系统的性能。

答案2

@agz 一开始你几乎完全正确。在你的第二段中,完全有可能文件的全部内容都是从闪存驱动器加载的。(另一方面,完全有可能打开一个文件,甚至不尝试读取所有内容……大型代码文件(如 exe 和 dll)通常就是这种情况。)

关于页面文件,页面文件从未缓存到 ReadyBoost 设备。

恐怕 Keltari 和 Thomas 都是错误的。

从 Windows 7 及更高版本开始,ReadyBoost 不再是与 SuperFetch 分开实现的文件缓存。如果启用,ReadyBoost 只会为 SuperFetch 提供额外的存储空间。SuperFetch 通常会在使用 RAM 之前先使用此存储空间。

但是无论是否启用 ReadyBoost,SuperFetch 都会执行其一贯的操作,即尝试缓存经常使用的文件和最近使用的文件(而不仅仅是 exe 和 dll)。

(让我更清楚地说明一下最后这一点:SuperFetch 仅缓存 exe 和 dll 的说法是不正确的。)

但页面文件除外。页面文件永远不会被 SuperFetch 缓存。(想想:页面文件包含从 RAM 中逐出的数据,因为它被认为不如其他需要 RAM 的内容重要。那么 SuperFetch 为什么会决定将其读回 RAM?内存管理器已经决定将其放入页面文件中。)

因此,页面文件内容将不会缓存到 ReadyBoost 驱动器,因为 ReadyBoost 永远不会缓存 SuperFetch 不会缓存的内容;ReadyBoost 没有自己的“缓存什么?”算法。ReadyBoost 只是为 SuperFetch 提供可用空间。

SuperFetch 以及 ReadyBoost 不会缓存页面文件的另一个原因是:SuperFetch 不会缓存当前打开以进行写入的文件。它的目的是缓存“主要读取”的文件。页面文件可能被不断写入。因此永远没有机会将其或部分快照快照到另一个缓存设备。每次真实文件更新时,缓存都必须更新,而没有机制可以做到这一点任何文件。

Windows 也不会允许您在 USB 驱动器上创建页面文件。原因:如果 Windows 需要从 USB 驱动器读取页面文件内容,而有人已将 USB 驱动器从其端口拔出,则没有其他地方可以获取该数据。Windows 必须崩溃,就像从故障驱动器读取任何其他页面的尝试一样。

(如果您想让页面文件拥有类似 SSD 的速度,但又无法让整个系统驱动 SSD,那么可以购买一个 16 GB 左右的小型廉价 SSD,并将页面文件放在上面。)

答案3

正如 Keltari 所说,ReadyBoost 利用 SuperFetch 技术来缓存文件并提高性能。SuperFetch 本身会分析使用模式,并将您经常使用的可执行文件(和库)的副本缓存到 RAM 中,以便比从硬盘驱动器读取它们更快地访问 - 这是因为 RAM 比硬盘驱动器快得多。ReadyBoost 分析使用模式并存储一些经常使用的文件(不仅仅是可执行文件和库)位于 ReadyBoost 闪存驱动器上(而不是 RAM 中)。ReadyBoost 之所以有效,是因为 USB 闪存比硬盘快得多对于某些类型的操作

硬盘驱动器的工作原理是将数据存储在硬盘(而不是软盘)旋转磁盘(称为盘片)上,然后使用位于盘片顶部摆动臂上的小磁针读取或写入数据。如果您需要读取的数据都是连续的,称为顺序数据,则硬盘可以相当快地读取数据 - 通常每秒 60 到 100 兆字节。但是,如果数据不是按顺序存储的,读取臂必须来回移动很多次才能开始读取新的数据块 - 这称为延迟,它会大大降低速度。如果数据随机分散在盘片上,那么当今普通硬盘的读取速度可能约为每秒 1.5 兆字节。

由于硬盘上的随机读取速度非常慢,而闪存在随机读取方面非常出色,因此在 USB 闪存驱动器上存储缓存可以显著提高随机读取的性能,优于普通硬盘。正如我之前在评论中所说,一个好的 USB 2.0 闪存驱动器可以最大限度提高 USB 总线的速度,达到每秒 480 兆位(60 兆字节)。这比 1.5 好一点 ;)

有一些注意事项。
硬盘驱动器的盘片旋转得越快,延迟越低,读取速度越快。目前台式机驱动器的标准是 7200 RPM。高性能数据中心存储驱动器的转速高达 15,000 RPM。
并非所有 USB 闪存驱动器都是一样的。您可以使用内置的 Windows 命令winsat来衡量闪存驱动器的性能并将其与硬盘驱动器进行比较。

您的页面文件是专用的硬盘空间,Windows 可以很好地管理它。除非您在安装过程中确实弄乱了 Windows,否则页面文件中的所有数据都是连续的,因此不会从 ReadyBoost 中受益,所以 ReadyBoost 甚至不会考虑缓存页面文件数据。

ReadyBoost 仅在您的计算机需要时才写入或读取 ReadyBoost 驱动器。正如 Keltari 在他的回答中指出的那样,性能较高的系统将很少使用 ReadyBoost。性能较低的系统(例如较旧的笔记本电脑)将大量使用您的 ReadyBoost 驱动器 - 但它仍应持续使用 10 年或更长时间,这比您的旧笔记本电脑的使用寿命更长 ;)

ReadyBoost 不会受到系统 RAM 的影响,也不会对系统 RAM 产生任何影响。互联网上关于它有利于内存不足的计算机的大量废话几乎都是假的 - ReadyBoost 根本不是这样工作的;那是您的页面文件的目的。

如果您有 SSD 或混合 HDD,ReadyBoost 对您来说将完全无用,因为 USB 闪存比 SSD 或混合 HDD 上的闪存慢得多。截至撰写本文时,我还没有找到配置 ReadyBoost 的方法,即强制它缓存来自辅助硬盘驱动器的数据。


注意:要比较硬盘驱动器 (c:) 和 USB 闪存驱动器 (e:) 之间的性能,以确定您是否能从 ReadyBoost 中受益,您可以同时运行以下命令提升的命令提示符
winsat disk -read -ran -ransize 40960 -drive c:
winsat disk -read -ran -ransize 40960 -drive e:

相关内容