我在网上找到了一款能把内存虚拟成硬盘缓存的软件,FancyCache。我想知道这个软件应该如何使用,FancyCache都有哪些功能,时候会对内存造成损坏?
不会对内存造成损坏的,这个软件也和其他的软件一样依托与Windows系统任务管理器来使用内存的,并不是什么特殊的软件,关于使用方法,单独说那个功能也不好,而且我也没怎么用过这个软件,下面是一份FancyCache 使用帮助文档。
==============================================================
FancyCache有两个版本:分区版和硬盘版。两者区别仅在于前者可对每个分区设置缓存,而后者对整个硬盘设置缓存。其他在使用设置上均相同,因此本节仅以分区版为例做介绍。
用户界面
FancyCache主用户界面分为四部分,如下所示,
区①: 分区/硬盘列表
区②: 选定分区/硬盘的缓存设置区
区③: 选定分区/硬盘的缓存状态区
区④: 全局内存控制和信息区
术语
缓存粒度: 一般该值越小,可以带来较高的性能,但同时也增大系统的额外开销,尤其当目标分区/硬盘的容量比较大时,较小的值将大大增加系统额外分配的内存值。程序自动会根据目标分区/硬盘的容量给出建议值,用户如果需要,可以在建议值的基础上调整1~2档。
缓存大小(一级缓存): 一级缓存由系统内存组成,因此该值表示从系统分配的内存大小用作选定分区/硬盘的一级缓存。
缓存算法: 当缓存数据满的时候,选择何种方式丢弃旧的缓存数据,以便有空间保存新的缓存数据。
LRU (Least Recently Used): 最近最少使用调度算法,首先丢弃最近最少被使用的数据。
LFU (Least Frequently Used): 最近最不常用调度算法,软件统计数据被使用的频率,使用频率最低的数据首先被丢弃。
缓存策略: 根据实际应用选择相应的缓存策略可以更有效的提高缓存命中率。
缓存读写: 对读取和写入操作均进行缓存。
仅缓存读: 仅对读取数据进行缓存,写入数据则不占用缓存。
仅缓存写: 仅对写入数据进行缓存,读取数据则不占用缓存。
延时写入: 当外部数据写入缓存时,通常也需要将这些数据写入至分区/硬盘。如果不勾选此选项,则每次收到写入请求时,同步的将数据写入到分区/硬盘,并等待分区/硬盘写入完成后才完成写入请求。这种方式和平时写硬盘的方式一致,不必担心突然断电造成部分缓存数据来不及写入硬盘,但是另一方面对写入性能也不会有提升。当勾选此选项,也即启用延时写入功能时,每次收到写入请求时,数据先写入缓存中,并完成该写入请求。同时缓存在后台根据算法和用户设置的延时时间,每隔一段时间将数据写入到分区/硬盘。这种方式可以合并在同一地址上的多次写入,并具有一定的数据排序功能,从而可以提升写入性能。但另一方面,用户需注意在突然断电或其它应用程序导致的蓝屏错误情况下,有部分数据可能还存在于缓存中未来得及写入,这会造成数据丢失。
写入后优先释放缓存: 当此项勾选时,则包含待写数据的缓存在完成数据写入至硬盘后,将优先被丢弃。
关机时丢弃缓写数据: 当此项勾选时,则在计算机关机时软件将丢弃尚未写入分区/硬盘仍在缓存中的数据。请注意此选项仅在特殊环境中使用,一般用户请勿勾选,否则可能会造成数据丢失。
均匀写入缓写数据: 默认情况下,当设置的延时时间到后,所有当前缓写的数据将被一次性地写入硬盘。当此项勾选时,缓写数据不是在延时到期后才开始写入,而是在整个延时期间内都会均匀化的写入硬盘。该选项主要防止突发大量写入造成用户响应迟滞的问题。通常用户不需开启这个选项。
防止HDD C1过快增大: 避免部分机械硬盘,尤其是笔记本硬盘,的C1指标异常快速增大。SSD的用户不需要勾选此项,以便获取最佳性能。
这里C1指"Load/Unload Cycle Count",即磁头伸出/缩进的次数。
二级缓存: 用户可以使用系统未识别内存或闪存盘/SSD固态硬盘作为二级缓存。如前所述,一级缓存有系统内存组成,其读写性能要高于二级缓存,当然二级缓存的读写性能仍要比普通硬盘好。缓存数据首先保存在一级缓存中,当一级缓存满的时候,数据将从一级缓存中转存到二级缓存中。注: 二级缓存可能发送大量的交换数据写入,因此对于SSD/闪存的寿命有较大影响。
MBU (Maximum Block Usage): 此替换算法以提供最大缓存能力为目标。当二级缓存满负载时,二级缓存中的数据会被淘汰替换以便容纳新数据。此算法容易引起一级缓存和二级缓存之间频繁的数据交换。
LBW (Least Block Written): 此算法以最少写入为目标。当二级缓存满负载时,不进行数据替换,即不再接受新数据写入。此算法主要用于SSD/闪存,以避免过多的写入。注: 虽然此时二级缓存不发生数据替换,但一级缓存仍进行数据替换。
操作帮助
如何启用系统未识别内存(32位桌面操作系统)
为使用系统未识别内存,用户首先需要启用系统未识别内存功能。勾选界面区④中选项 “Enable OS Invisible Memory” ,然后程序将会显示检测到的未识别内存信息(IM Free/Total)。
注:自版本 0.7.0,FancyCache 引入了新的模块管理未识别内存:未识别内存管理接口。
如何启动缓存功能
步骤1: 在区①,选择需要被缓存的分区/硬盘;
步骤2: 在区②,设置需要的缓存配置;
步骤3: 在区②,点击 “启动缓存” 按钮启动缓存功能。如果成功,程序会在区③显示缓存运行状态。
缓存开启后,无论用户退出应用程序或重新启动计算机,一直自动运行。因此用户无需在计算机重启后手动运行应用程序。
如果需停止缓存功能,点击 “停止缓存” 按钮。停止后,所有已缓存的数据将被清除。
如果需暂停缓存功能,点击 “暂停缓存” 按钮。此时,所有已缓存的数据仍保留。
如何手动将缓存数据更新到分区/硬盘
当启用延迟写入方式时,程序根据延时时间和其它算法自动将缓存中的数据更新到分区/硬盘。如果有需要,用户也可以进行手动更新。
步骤1: 在区①,选择目标分区/硬盘;
步骤2: 在区②,点击 “写入缓写数据” 按钮,程序将仍在缓存中的数据更新到分区/硬盘。
如何查看缓存状态和性能统计
步骤1: 在区①,选择要查看的分区/硬盘;
步骤2: 在区③,程序显示当前缓存运行状态;
步骤3: 在区③,点击 “性能监视” 按钮查看性能统计数据。请注意统计数据在性能监视对话框打开时开始统计,在对话框退出后统计数据将清零。
上图中,Read Hit Rate = Read Bytes (Cached) / Read Bytes (Total) * 100%,
其中,Read Bytes (Cached) 指从L1 Cache 和L2 Cache 读取的字节数,Read Bytes (Total) 指读取的字节总数,包括从Cache (L1 + L2) 和 Disk/Volume读取的字节数总和。这个指标反映了Cache的利用率。