ReadyBoost是Windows Vista中的新技术,在继Windows Vista的下一代操作系统Windows 7中,同样包含了这项技术,它利用了闪存随机读写及零碎文档读写上的优势来提高计算机系统性能。它是下一代闪存硬盘的临时替代品。
这项技术目前仅支持USB2.0接口的USB以及计算机内置读卡器中的闪存。具体要求是,4k随机读取的速度大于3.5M/s,512k随机写入的速度大于2.5M/s。
使用支持 ReadyBoost 的闪存(NAND 存储)设备作为缓存,可以使Windows Vista 或者 Windows 7 中的随机磁盘读取性能原则上较传统的硬盘提高80-100倍。该缓存可以作用于所有的硬盘内容,而不仅仅是页面文档或者系统 DLL 文档。原则上来说,闪存设备的顺序 I/O 要比传统的硬盘速度缓慢,为了提高性能,ReadyBoost包含了大型识别逻辑,顺序读取请求并且要硬盘为这些请求服务。
当一个兼容的设备连接到计算机,弹出的 Windows 自动播放对话框将提供一个附加的选项来使用闪存设备加速系统;磁盘属性对话框也会添加一个附加的:“ReadyBoost”选项卡,并且挂载的可用空间将是可以配置的。可被指派的闪存空间为 256兆至256G(32位的 Vista将会指派为4GB)。ReadyBoost 使用 AES-128 进行加密和压缩并将所有的数据存放于闪存设备;微软设计的设定的压缩比为2:1,即:4GB 缓存将最多包含 8GB 数据。
基于Jim Allchin的调查:对于将来要发行的 Windows,ReadyBoost 将能够使用存在于网络当中的其他 Windows PC 上的备用存储。
对于兼容的设备,必须满足以下条件:
可移动设备的容量不得小于 256MB(格式化后 250MB)。Windows Vista x86 和 x86-64 被限制使用4GB;该限制在 Windows 7 中被删除。
Windows 7 允许最多使用8个设备最大256GB作为附加存储。
设备的访问时间必须小于或等于 1 毫秒。
设备必须能够以 2.5MB/秒的平均速度在整个设备上进行 4KB 随机读取;512KB 随机写入平均速率为 1.75MB/秒。
Vista SP1 的 ReadyBoost 支持 NTFS、FAT16、和 FAT32 等文件系统。Windows 7还支持全新的 exFAT 文件系统。Vista SP2 不支持 exFAT 文件系统。
鉴于 ReadyBoost 缓存以文档的方式存储,设备必须格式化为 NTFS 或者 exFAT,以便存储大于 4GB 的缓存,而 FAT16 和 FAT 32 的文件系统限制文档大小为 2GB-4GB。
Windows Vista 的 ReadyBoost 支持一个设备。Windows 7 可以支持多个设备,所以性能上可以认为与 RAID 0 相似。
由于 Windows 7 下的 ReadyBoost 由 Vista 的增强算法发展而来,所以能提供更高性能。实验表明 Windows 7 的闪存设备读取性能比 Vista 下高5-10倍。
由于 ReadyBoost 将缓存作为一个文档存储,文件系统必须挂载并分配一个盘符。由于只有根目录作为 ReadyBoost 缓存空间,简单的挂载为一个其他驱动器上的NTFS文件夹并不能满足要求。
另外,逻辑驱动器属性将不会显示 ReadyBoost 选项卡。
微软建议作为 ReadyBoost 加速的闪存设备是已安装的系统内存的 1-3 倍。当使用 ReadyBoost 选项卡设置 ReadyBoost 的时候,
请不要因为这个建议而产生混淆:例如,如果使用16GB的容量并且格式化为 FAT32,仅管系统内存为10GB,仍会有以下提示:“Windows 建议预留 4094 MB 作为性能提升空间”,
原因是 4094 MB 是 FAT 32 文件系统允许的最大文档存储空间;如果将设备重新格式化为 NTFS 或者 exFAT,提示将改为:“Windows 建议设置为 15180MB”。
如果系统驱动器采用的固态硬盘(SSD),ReadyBoost 将不可用。
Windows Server 2008 不支持 ReadyBoost。
ReadyBoost技术的作用
原理 ReadyBoost功能,允许使用者通过闪存来加速系统。ReadyBoost由一个在%SystemRoot%System32Emdmgmt.dll中实现的运行于主机进程中的服务和一个卷过滤器驱动程序
(%SystemRoot%System32DriversEcache.sys)组成。当闪存设备插入系统后,ReadyBoost服务会查看该设备以确定其性能特征,并将测试结果存储在HKEY_LOCAL_MACHINESoftwareMicrosoftWindows
NTCurrentversionEmdmgmt中。
并不是所有闪存设备都能够支持ReadyBoost功能,在微软的技术文档中写道:“当闪存设备容量介于256MB和
32GB之间,对于4KB随机读取的传输率为2.5MBps或更高、对于512KB随机写入的传输率为1.75MBps或更高”时,
ReadyBoost才会将询问用户是否想要将部分存储空间用于进行磁盘缓存。
尽管ReadyBoost可以使用NTFS,它还是会将最大缓存大小限制在4GB,以适应FAT32的限制。如果用户同意使用ReadyBoost功能的话,那么该服务便会在该设备的根目录下创建一个名为ReadyBoost.sfcache的缓存文件,并要求SuperFetch在后台预先填充缓存。
在ReadyBoost服务对缓存进行初始化之后,Ecache.sys设备驱动程序会将所有读写数据截取到本地硬盘卷(例如
C:),并将要写入的所有数据复制到该服务创建的缓存文件中。Ecache.sys会将数据压缩,压缩比通常达到2:1。这样,4GB的缓存文件通常将包含8GB数据。驱动程序会联合使用高级加密标准(AES)和一个随机生成的引导会话密钥对其写入的每个块进行加密,以在将设备从系统移除的情况下保证缓存中数据的保密性。
当ReadyBoost确定闪存内的缓存比硬盘内的缓存更能满足随机读取需求时,它便会从闪盘介质内随机读取数据。而硬盘的有序读取访问要明显胜过闪存,因此,当
ReadyBoost 侦测到有系统正在使用有序访问数据的时候,将直接从磁盘读取,即使该数据同样位于闪盘介质内的缓存中。
正是基于这个原理,ReadyBoost 可充当内存与硬盘之间的桥梁作用,从而加速系统性能。
作用 ReadyBoost
可以利用U盘高速随机访问能力,让U盘作为 Windows Vista 的SuperFetch缓存,从而让低内存的 Windows Vista
也能获得比较好的性能(SuperFetch 是 Windows Vista 引入的一种新型内存管理机制,ReadyBoost 把U盘虚拟成 SuperFetch
缓存,从而提高系统性能)。随着u盘性能不断提升,现在好的u盘usb2.0存储速度已经实际达到8MB/s至20MB/S(笔者u盘已经达到20MB/s),已经能够让ReadyBoost发挥明显的作用。而随着USB3.0的发展,U盘速度已实际达到30MB/s至60MB/S。
关于简单检测u盘速度的方法:
复制大于150MB的单个文件到u盘,usb2.0下如果持续显示速度只有4MB/s,那么你的u盘现在属于低端u盘,不过已经达到4MB可以运用加速,只是加速不太明显。
若usb2.0下复制速度超过15MB/s,既是现代流行的u盘速度,属于主流u盘,完全可以应用加速,且效果明显。
开启方法
如果没有关闭自动运行功能的情况下将u盘插入usb接口,这个时候会弹出自动播放窗口,在常规选项中我们可以看到一个“加速我的系统”的选项,点击会弹出Readyboost设置面板;如果没有弹出自动播放窗口,我们可以直接在我的电脑中,在可移动磁盘上右键属性,选择Readyboost选项卡打开设置窗口。设置窗口中有三个选项分别是:不使用这个设备、该设备专用于Readyboost和使用这个设备。第一项很清楚了就是在不想使用此功能时选择这一项,然后就可以卸载u盘了;第二项和第三项都能开启Readyboost功能,不同的是选择“该设备专用于Readyboost”这个选项后系统会将u盘中所剩余的所有空间作为缓存来使用,如果选择的是“使用这个设备”我们就可以自定义想要预留的空间大小。
提示:
开启Readyboost功能时要保证Superfetch服务处于启动状态,这样才能使此功能真正发挥效能;开启Readyboost功能是不会影响到之前在u盘中存储的文件的。
Readyboost应用篇
尽管闪存随机读写性能一般较好,但由于市场上闪存设备性能良莠不齐,因此要达到Readyboost的要求,仍有必要对闪存的性能作出一定的规范和限定,为此,微软对支持Readyboost的闪存设备做出了如下的限定:
1- 读写速度方面,最低要求闪盘等存取设备在随机读取4KB尺寸文件时,速度应达到2.5MB/s以上,而在随机写512KB尺寸文件时,速度应不低于1.75MB/s;要想完全发挥出Readyboost技术的性能优势,要求闪盘等存取设备在随机读取4KB尺寸文件时,速度应达到5MB/s以上,而在随机写入512KB尺寸文件时,速度应不低于3MB/s。在将外存设备插入系统时,会自动弹出Readyboost选项,同时系统会自动对外存设备的随机读写性能进行测试,如果能够满足最低要求,则在选项卡中会出现Readyboost的相关选项。
2- 闪存容量和接口方面,至少具备256MB以上的空余空间,微软推荐使用1GB以上空余空间的闪存。另外,如果使用USB1.1及以下规格的接口,将无法开启Readyboost功能;
3- 闪存整体的读写性能要保持一定的一致性,内部不同位置的读写响应不能相差太大。有些所谓的高速闪存只有一部分容量使用高速存储体,余下的容量则使用低速存储体来填补,这样就会造成闪盘不同区域的读写性能不一致。具体的一致性数值要求微软并没有作出说明,但提供了测试软件以供用户测试。
# 可以利用Winsat评估。