PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

[第08周]HyperX Predator PCIe SSD Trim策略探讨

[复制链接]
overthink 发表于 2015-9-24 09:55 | 显示全部楼层 |阅读模式
点击数:33553|回复数:14
本帖最后由 overthink 于 2015-9-24 10:10 编辑

在SSD区看到有同学找能检测Trim功能的小软件

还有问OCZ SSD Trim是否已经开启



这周,来简单探讨一下HyperX Predator PCIe SSD的Trim策略


在探讨Trim之前,先看一下什么是LBA:


什么是垃圾回收(GC):


      我们在操作系统中删除文件,并不是真正的删除文件,只是在系统里把此文件占用的LBA标记为无效。对HDD来说,这样没什么问题,写入新文件可以在这些无效的LBA上直接写入。但是对于闪存来说,需要先清空这些LBA,再进行写入操作。这样就会影响到SSD的性能。因为写入前需要先进行清空操作。

为了降低清空操作对写入性能的影响, SSD上添加了Trim  ATA指令。


我们在开启Trim的SSD上删除及写入文件的操作可能会是这样的:

1.删除文件
2.系统发送Trim指令到SSD
3.在空闲时间,SSD执行Trim指令
4.SSD把标记的LBA做垃圾回收(GC)
5.在做完垃圾回收清空的LBA上进行写入文件操作



有了Trim,在Trim执行后,我们在写入操作时就可以直接写入了,而不需要先做垃圾回收(GC),因为垃圾回收已经在空闲时间通过Trim指令进行了。


如何检测是否开启了Trim


使用WIN7系统,开启AHCI,使用smachi驱动或者RST驱动,这样一般是开启了的。

可以使用DriveControllerInfo这个小软件查看一下



SSD上有个小刷子,最上面有(ATA TRIM)Enabled



那么如何确认TRIM正常工作?


可以使用Trimchecker来检测一下。

把Trimchecker放到要检测的SSD上,在命令行模式下运行

第一次运行会在某空闲LBA写入随机数据,并删除,同时会生成一个trimcheck-cont.json文件,里面记录了此次写入的数据。


程序最后那一段英文的大意是:测试文件创建并删除了,数据已经保存。确认是否执行了TRIM指令需要再次运行程序。通常需要等一会(20秒),有些时候需要重启。


再运行一次,Trimchecker会读取此LBA的数据,来和trimcheck-cont.json的相比较,


好吧,貌似Trim还没有被执行。在Offset:40185053184位置处,两次的数据没有变化。



重启一下,再试,数据还是没有变化。



每间隔10分钟运行一次程序
总共耗时一小时运行7次,数据还是没有变化



是不支持TRIM还是TRIM没有执行?


关机,第二天再说


早上起床,开机,再运行

发现Offset位置40185053184数据已经被GC掉了,变成了00,说明TRIM已经被执行。



从测试中发现HyperX Predator PCIe SSD固件的TRIM并不积极,执行TRIM最少等一小时以上。



正好手上有浦科特的一块SSD,M3S,已经让我刷成M3P了,支持浦科特的TrueSpeed,浦科特不掉速度的本质是一有Trim指令就立马执行,几乎不等待。也顺手测试一下做一下对比。

用SSDOK发一下测试平台




DriveControllerInfo显示TRIM开启


第一次运行Trimcheck


完成后马上再运行一次


结果,Trim指令已经被执行。



对比这两款SSD,虽说主控都是Marvell的,一个是Marvell 88SS9293,一个是Marvell 88SS9174,但是固件的Trim的策略是完全不同的。


HyperX Predator PCIe SSD的Trim非常不积极。PlextorM3P的Trim非常积极,一有Trim就马上执行。


这两种Trim策略各有优缺点:
Trim不积极,对NAND的磨损比较小,长期使用速度会掉的比较明显。
Trim积极,对NAND的磨损比较大,长期使用掉速不明显。



前一段时间爆出的三星8系列的SSD TrimBUG,简单来说就是Trim发送了,标记无效的LBA后,没执行,之后无效的LBA又写入有效数据变为不需要GC的LBA,但是固件脑残没有记住,在想起执行Trim时把这些含有有效数据的LBA给GC了,数据丢失,文件损坏。

感兴趣的可以移步浴大的详细分析帖:




最后放出小软件下载地址:


SSDOK



Trimcheck



DriveControllerInfo



我知道大家基本都用上了SSD,那么你所使用的SSD的Trim是否正常开启,Trim策略如何?欢迎使用上面的软件检测并帖图探讨。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1绝对值 +5 收起 理由
羽落风尘 + 5 很给力!还是喜欢浦科特这种!

查看全部评分

overthink  楼主| 发表于 2015-9-24 10:16 | 显示全部楼层
使用两个月了,下周跑个分看看
Ramaxel 发表于 2015-9-24 10:49 | 显示全部楼层
积极不积极无所谓了,我的走了PLX依然没感觉有啥差别,反正碾压730这样的SATA王者就对了
overthink  楼主| 发表于 2015-9-24 15:34 | 显示全部楼层
Ramaxel 发表于 2015-9-24 10:49
积极不积极无所谓了,我的走了PLX依然没感觉有啥差别,反正碾压730这样的SATA王者就对了 ...

不出问题就好。

话说750体验如何?
Ramaxel 发表于 2015-9-24 17:09 | 显示全部楼层
overthink 发表于 2015-9-24 15:34
不出问题就好。

话说750体验如何?

回娘家了
是个坏的,intel说天朝没货,从歪果搞一个回来给我换,时间是3个礼拜左右
overthink  楼主| 发表于 2015-9-25 08:37 | 显示全部楼层
Ramaxel 发表于 2015-9-24 17:09
回娘家了
是个坏的,intel说天朝没货,从歪果搞一个回来给我换,时间是3个礼拜左右
...

是不是打开姿势不对?  要更多姿势才能解锁?
xieyh11 发表于 2015-9-25 13:03 | 显示全部楼层
好东西,也已经测试过了,貌似850 EVO的trim很积极
overthink  楼主| 发表于 2015-9-25 15:31 | 显示全部楼层
xieyh11 发表于 2015-9-25 13:03
好东西,也已经测试过了,貌似850 EVO的trim很积极

发图啊,SSDOK平台图,运行Trimcheck的截图,多长时间被TRIM掉也简单说一下
红色狂想 发表于 2015-9-25 20:59 | 显示全部楼层
上个月25号第一次运行trimcheck-0.7,因为当时不知道怎么使用,没运行第二遍看到结果。昨天接着运行第二遍,竟然Trim之后存储区数据没任何改变。于是删除trimcheck-cont.json又测试了一遍,昨天晚上运行第一遍,然后就关机了。今天上午开机后一直使用到现在,刚才运行了第二遍,存储区数据还是一成不变,CONCLUSION: INDETERMINATE。。。也不知道到底支不支持Trim

具体如下图所示:





怪不得这坑屎盾盘这么持久稳定,掉速那么快,敢情是不知道猴年马月才会进行Trim,或者说固件根本就没有该策略。不过话又说回来了,这倒怪适合winXP用户族

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
overthink  楼主| 发表于 2015-9-25 21:14 | 显示全部楼层
红色狂想 发表于 2015-9-25 20:59
上个月25号第一次运行trimcheck-0.7,因为当时不知道怎么使用,没运行第二遍看到结果。昨天接着运行第二遍 ...

JMF668主控

trimcheck-cont.json文件不要删除,等个月儿半载再运行看看
红色狂想 发表于 2015-9-25 21:23 | 显示全部楼层
overthink 发表于 2015-9-25 21:14
JMF668主控

trimcheck-cont.json文件不要删除,等个月儿半载再运行看看

是啊,V200是JMicron JMF66x主控。

我第一次测试就是等了一个月啊,8月25号运行第一遍,9月25号运行第二遍,这等的还不够长吗?我再测个更长的,明年搬家后给你汇报结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
overthink  楼主| 发表于 2015-9-25 21:27 | 显示全部楼层
红色狂想 发表于 2015-9-25 21:23
是啊,V200是JMicron JMF66x主控。

我第一次测试就是等了一个月啊,8月25号运行第一遍,9月25号运行第二 ...

好吧,那可能固件里面就没TRIM,   TRIM做好不容易,看看三丧就知道了。
广州车路士 发表于 2016-7-16 18:20 | 显示全部楼层
arc100奇怪   既没有变全00   也不是完全没有变化  而是变成完全不同的值   程序结果为无法确定究竟是启用了还是没有启用
overthink  楼主| 发表于 2016-7-18 20:53 | 显示全部楼层
广州车路士 发表于 2016-7-16 18:20
arc100奇怪   既没有变全00   也不是完全没有变化  而是变成完全不同的值   程序结果为无法确定究竟是启用 ...

估计是时间太长,又写入新东西了。
广州车路士 发表于 2016-7-21 20:56 | 显示全部楼层
overthink 发表于 2016-7-18 20:53
估计是时间太长,又写入新东西了。

不是   我跑第二次也是会变   我挂的从盘  不会有新的写入   连续测多次   5秒内跑第二次就完全不变证明还没开始trim   要是等待5秒再跑  就变成完全不同的值  也不是0 不知道为什么   好奇怪
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部