PlexTurbo基础需求及释疑:
月初我在绝对试用版块提交了对浦科特M6e 512G的试用申请,在此按要求提交试用作业:PlexTurbo测试——性能与耐久。
PlexTurbo对系统的最低要求为处理器主频高于1Ghz、内存不小于2GB、操作系统为Windows 7/8/8.1(32位或64位)。如果是M6Pro/M6e的用户最好配备16GB以上内存,M6S用户最好配备8GB以上内存以获得最佳效能。
PlexTurbo现在的版本有点混乱,1.0版本是只支持M6Pro的,2.0开始加入了M6e和M6S的支持,不过为了区分M6S和M6Pro/M6e的产品定位,M6S的PlexTurbo做了一些限制,简单来说就是动态内存Cache容量限制在1GB,而M6Pro/M6e等高端型号的动态内存Cache可以最大4GB。
两种安装方式与减少写入量监视器:
安装PlexTurbo有两种方式,安装PlexTool工具箱或者独立的PlexTurbo程序,二者都可以在浦科特官网下载页面找到。我这次用了PlexTurbo独立安装程序,PlexTool工具箱自带的PlexTurbo功能有一些小BUG,主要是显示方面的问题,PlexTurbo Viewer可能不能正常显示减少写入量的效果统计数据。
PlexTurbo安装完后会有一个Viewer常驻任务栏通知区的小工具,随时记录和显示当前PlexTurbo已经为你减少的SSD写入量。为了方便查看数据,可以在任务栏属性设置中将其图标设置为始终显示:
将Plexturbo Viewer设置为“显示图标和通知”,这样图标就会始终显示在任务栏统治区中,不会被隐藏。
这就是点击任务栏通知区PlexTurbo Viewer图标后显示出的小窗口,其中显示了减少写入量的效果统计。
性能对比与原理分析,PlexTurbo真有效果吗?
浦科特M6e 512G默认条件下TxBench测试:
浦科特M6e 512G开启PlexTurbo之后Txbench测试:
从TxBench的测试对比中可以看到,各项读取测试成绩得到巨幅提升,可以肯定的是测试出的是内存的速度,在建立测试文件、写入SSD的时候,PlexTurbo将测试文件缓存,然后在读取测试阶段直接从内存读取,因而得到了夸张的数据。如果能够提前预读用户接下来将要使用的数据到内存当中缓存,那实际使用速度就可以达到这种夸张的效果。
PlexTurbo能够使用最大4GB内存空间来缓存热数据,那么4GB是否能够满足常用数据预载缓存呢?正好我有一位做无盘网吧技术的朋友,他告诉我Win7系统的客户机做无盘引导的话,4GB缓存就可以覆盖95%以上的系统盘读取命中。这是一个非常令人欣慰的信息,如此就可以知道PlexTurbo的4GB容量缓存是具有实际加速意义的,绝不仅仅是满足跑分的噱头产品。
如果把无盘系统的内存缓存翻倍提升到8GB,缓存命中率也仅能提高3%达到98%,开销翻倍而效果提升有限,因此PlexTurbo 4GB缓存容量的选择不仅仅是考虑当前家用电脑物理内存安装容量的实际情况,应该也是具有一定统计学意义的。
通过PC Mark来测试开关PlexTurbo前后的效果:
未开启PlexTurbo,PC Mark 7:5603(RAW 7153)
开启PlexTurbo,PC Mark 7:5646(RAW 8141)
未开启PlexTurbo,PC Mark 8:4986(带宽288.64MB/s)
开启PlexTurbo,PC Mark 8:5010(带宽347.74MB/s)
除了性能提升,减少写入量也是亮点:
说完了PlexTurbo 3.8GB数据缓存加速读取的作用,再来看浦科特官方示意图中另外200MB的描述。
这200MB中包括一个Pattern和写入整理缓存,二者一起最大不超过200MB。Pattern其实就是一个对比表,PlexTurbo维护这个表来确定哪些数据是经常访问的,哪些数据在一次使用后就长期没有再访问了。冷数据会逐渐从3.8GB的数据缓存中释放掉,而热数据则长期保存在数据缓存中,提高读取缓存命中率。
浦科特曾说过PlexTurbo与其他内存缓存软件不同,PlexTurbo使用Write Through直写,将数据直接写入闪存以避免意外掉电的数据损失。其实从上文中TxBench的对比中能看到,并非所有数据都是Write Through进闪存的,4K随机和4K随机队列性能都表明随机数据会先进入缓存,整理后连续写入闪存以降低写入放大率、提高闪存寿命。另外128K区块的持续写入性能比未打开PlexTurbo前也有提升,不过幅度相对非常小,这应该也就是200MB可能还是以Write Back形式的写入缓存,不过和Pattern加一起总计不超过200MB的设定使得掉电丢数据的概率得到有效控制,将随机写入整理后写入带来的写入放大率降低的效果也是很有用的。
用过FancyCache一类内存加速软件的朋友都知道,设置大内存缓存之后再开Write Back延迟写,才能达到明显的降低写入量的效果。那么PlexTurbo仅有200MB的写入缓存,是如何达到浦科特宣称的“降低写入量”效果的呢?
PlexTurbo的工作流程当中,所有写入请求都会经过第一步甄别,如果缓存中已经有对应block段落的数据,并且内容和缓存中保存的一样,没有发生变化的话,这部分LBA的数据在写盘的时候就会被跳过不写,以此来减少了实际写入闪存的数据量。
记得EVA曾有过一个PlexTurbo 1.0的技术介绍,里边是用画图程序反复保存写入数据来验证写入量降低效果的。从其中原理来看,只要写入的数据还在PlexTurbo的3.8GB缓存当中,程序再要求写入的内容里恰好又包括其中一部分与缓存中数据相同的、重复要求写入的内容,PlexTurbo会把这部分内容拦截下来,不去做无用功再浪费时间与耐久度重写。当然了这个写入量降低的效果也要看程序的写入逻辑,如果是增量写入的,那么每次写入的数据都是与上次写入不同的部分,PlexTurbo也就无法再找到可以节省的写入了。
其实这些原理性的东西看起来很复杂,PlexTurbo 2.0以后已经有了Viewer可以查看当前已经减少的写入量,想了解效果的话直接查看即可。
总结:
考虑到很多朋友没精力去了解这些深入层面的内容,我在最后还是写出上文中的结论:
1. PlexTurbo的4GB缓存可提高缓存命中率,增加读取性能。4GB的容量选择是有一定意义的,能保障较为理想的缓存命中率,经济性也较好。
2. PlexTurbo会缓存随机写入,整理后写入闪存,降低随机写入的写放大。
3. PlexTurbo可以拦截重复性写入的部分(Block级别),降低写入量。
当然凡事有利必有弊,没有绝对完美的东西。PlexTurbo会对每笔写入数据进行热数据判断管理,相应会增大一些CPU负担,如果CPU配置较低,在大量写入压力下可能会有一些影响。所以说PlexTurbo并不是适用于所有电脑的,实际效果如何自行体验一下才是最真实的。
|