overthink 发表于 2015-9-24 09:55

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

本帖最后由 overthink 于 2015-9-24 10:10 编辑

在SSD区看到有同学找能检测Trim功能的小软件http://bbs.pceva.com.cn/thread-121971-1-1.html
还有问OCZ SSD Trim是否已经开启http://bbs.pceva.com.cn/thread-122294-1-2.html


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

在探讨Trim之前,先看一下什么是LBA:http://www.pceva.com.cn/topic/crucialssd/index-6_1.html

什么是垃圾回收(GC):http://www.pceva.com.cn/topic/crucialssd/index-6_4.html

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

我们在开启Trim的SSD上删除及写入文件的操作可能会是这样的:
1.删除文件2.系统发送Trim指令到SSD3.在空闲时间,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位置处,两次的数据没有变化。{:6_247:}


重启一下,再试,数据还是没有变化。{:6_248:}


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


是不支持TRIM还是TRIM没有执行?{:7_366:}

关机,第二天再说{:6_261:}

早上起床,开机,再运行
发现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了,数据丢失,文件损坏。
感兴趣的可以移步浴大的详细分析帖:http://bbs.pceva.com.cn/thread-120448-1-1.html



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

SSDOKhttp://bbs.pceva.com.cn/thread-118047-1-1.html


Trimcheckhttp://files.thecybershadow.net/trimcheck/


DriveControllerInfo


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

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王者就对了 ...

{:7_399:}不出问题就好。

话说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很积极

{:1_462:}发图啊,SSDOK平台图,运行Trimcheck的截图,多长时间被TRIM掉也简单说一下

红色狂想 发表于 2015-9-25 20:59

上个月25号第一次运行trimcheck-0.7,因为当时不知道怎么使用,没运行第二遍看到结果。昨天接着运行第二遍,竟然Trim之后存储区数据没任何改变。于是删除trimcheck-cont.json又测试了一遍,昨天晚上运行第一遍,然后就关机了。今天上午开机后一直使用到现在,刚才运行了第二遍,存储区数据还是一成不变,CONCLUSION: INDETERMINATE。。。也不知道到底支不支持Trim{:1_452:}

具体如下图所示:

http://bbs.pceva.com.cn/data/attachment/forum/201508/25/213848oh7ss242sssksof7.png



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

overthink 发表于 2015-9-25 21:14

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

JMF668主控{:7_366:}

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号运行第二遍,这等的还不够长吗?我再测个更长的,明年搬家后给你汇报结果{:1_443:}

overthink 发表于 2015-9-25 21:27

红色狂想 发表于 2015-9-25 21:23
是啊,V200是JMicron JMF66x主控。

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

{:7_388:}好吧,那可能固件里面就没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 不知道为什么   好奇怪
页: [1]
查看完整版本: [第08周]HyperX Predator PCIe SSD Trim策略探讨