FancyCache 应用示例: 减少SSD写入, 延长SSD寿命
本帖最后由 IsaacZ 于 2012-10-8 21:36 编辑本评测涉及的软件是: FancyCache 0.8.0 beta【将内存/闪存虚拟成硬盘缓存加速系统】
IsaacZ注:本文章对于理解Fancycache 各项数据的含义有重大作用,推荐阅读。
固态硬盘 (SSD) 相较于传统硬盘具有读写速度快、功耗低、静音等优点,有取代传统硬盘的趋势。然而SSD存在擦除写入次数有限的缺点,超过一定次数后,其性能变得不可靠乃至报废。FancyCache 的延时写入功能则可以有效地减少对SSD的写入,从而延长SSD的寿命。具体体现在以下三个方面:
合并对同一地址的重复写入
延时写入功能开启时, 对同一地址的多次数据写入最终将合并成一次,从而避免了无用数据的写入,大大减少写入数据量。以下实验演示了这个效果。
测试平台:
HDD (硬盘 #1): ST31000528AS
SSD (硬盘 #2): OCZ Vertex SataII 32GB (分区 Q: NTFS 文件系统)
操作系统: Microsoft Windows 7 Ultimate (32bit)
FancyCache 设置:
分区 Q: 是SSD的一个分区,对该分区启动FancyCache,设置一级缓存大小为1024MB,并开启延时写入功能。这里为使演示效果清楚,我们设置延时时间为1小时。
打开性能统计监视器,并按以下步骤,
步骤 1. 从硬盘#1复制一个文件到分区Q:。本实验中文件大小为300MB。从统计监视器可以看到 Write Bytes (Total) 增加了大约300MB。
步骤 2. 再次从硬盘#1复制并覆盖相同文件到分区Q:。重复该操作N次。可以看到, Write Bytes (Total) 增加了大约 (N * 300) MB.
步骤 3. 点击 "Flush Write" 按钮,将所有缓存中待写数据写入到实际硬盘。观察统计监视器可以看到最终写入的数据量( Write Bytes (Deferred) ) 仅为300MB左右,而不是 ((N + 1) * 300) MB
注: 当延时写入功能开启时, Write Bytes (Total) 指从文件系统接收到的准备写入硬盘的数据量, Write Bytes (Deferred) 指实际写入硬盘的数据量。
支持 TRIM 指令,避免写入将被删除的数据
TRIM 指令是为辅助SSD的块回收机制而新引入的指令。当删除某个文件时,Windows 发送 TRIM 指令告诉SSD该文件所在的数据块可以回收。但是 TRIM 指令不能避免SSD在开始的时候写入该文件,尽管该文件后来被删除。FancyCache能帮助处理TRIM指令,将在缓存中的相应待写数据移除,从而避免写入已经被删除的数据。以下是个简单的实验演示。测试平台和FancyCache设置与上一个实验相同。
步骤 1. 打开性能统计监视器,复制一个文件到分区Q:。本实验中文件大小为300MB。从统计监视器可以看到 Write Bytes (Total) 增加了大约300MB。即如果未启用延时写入,这300MB数据将立即被写入SSD。
步骤 2. 永久删除这个文件。等待30秒至1分钟后,Windows发送 TRIM 指令。很快从统计监视器可以看到 Trimmed Blocks (Total) 显示出相应的被移除的待写数据块。
步骤 3. 点击 "Flush Write" 按钮,将所有缓存中待写数据写入到实际硬盘。观察统计监视器可以看到最终写入的数据量仅大约100KB,而不是300MB!写入的数据量被大大减少。
注: 仅 Windows 7 和 Windows Server 2008 R2 支持 TRIM 指令, 所以本实验仅适用于 Windows 7 和 Server 2008 R2,并要求NTFS文件系统。(IsaacZ注:Win8亦适用)
对齐SSD的块大小写入
FancyCache 根据SSD的块大小,尽可能的将缓存中的待写数据对齐块大小,从而可以提高SSD的写入效率,减少写入次数。具体可参见 Iometer 性能测试 评论#3。
结论
应用延时写入功能,FancyCache可以有效地避免多余数据的写入,减少SSD的写入次数,从而延长SSD的寿命。当然,用户需注意在突然断电的情况下,有部分数据可能还存在于缓存中未来得及写入,这会造成数据丢失。
来源:http://www.romexsoftware.com/zh-cn/fancy-cache/demo-reduce-ssd-writes.html
页:
[1]