PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

满盘状态下,两款SSD的性能为什么会差距这么大?

[复制链接]
跳转到指定楼层
1#
venom2012 发表于 2011-10-28 11:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:12154|回复数:40
谢谢各位大大对我这个新人的帮助,今天又拿到一份PDF,里面就与我昨天提的删区测试有关。这份PDF里称删区后运行连续写4KB一天后,采用MARVELL主控的SSD性能衰减很小,但采用SF主控家的SSD性能衰减会很大。按理说,连续写一天4KB后,各盘都应处于满盘状态,SSD的性能都应出现大幅下降,那么为什么MARVELL的SSD性能下降幅度不大呢?SF家下降会如此明显呢?请各位大大帮小弟解释一下,以下附PDF里的测试图:

本帖子中包含更多资源

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

x
2#
James007ss 发表于 2011-10-28 11:41 | 只看该作者
简单来说就是算法差异造成的,而且SF很受之前写入的数据模型种类影响。
3#
venom2012  楼主| 发表于 2011-10-28 11:51 | 只看该作者
你的意思是不是满盘状态下,SF的均衡负载和垃圾回收等功能会占用主控带宽和芯片资源,造成性能下降?
4#
James007ss 发表于 2011-10-28 11:57 | 只看该作者
http://bbs.pceva.com.cn/thread-28620-1-1.html

你看这里浴室的回复应该就能懂了,SF的那个成绩,很明显进入GC态了。
5#
jeffxl 发表于 2011-10-28 14:02 | 只看该作者
本帖最后由 jeffxl 于 2011-10-28 14:32 编辑

我一直怀疑MARVELL在使用空闲闪存通道做优先级非常高的GC,以至于“清白”的颗粒到达一个低位的门限以后全速开启这个操作又不影响内部带宽性能,算法保证在高负载下还有富裕计算能力做这个操作,始终都有没有变脏的颗粒可写(GC效率远大于你随机写速率),这个效率我一直认为很大很大,从我折磨我的M4开始就发现这个问题了,你拼了老命好不容易把性能降低一点,或1分钟不到他几乎恢复了性能,哪怕你复制一段连续的非随机文件进去他都在恢复性能。但是在没有TRIM的帮助下会造成大量写入放大。
     而SF主控的设计思想几乎是寿命导向的,这个主控几乎所有特性都是围绕颗粒可写寿命减少写入放大(至少消费级里面全部都是),比如可压缩特性、RAISE、单独一个颗粒做OP。可压缩特性除了可以提供增益的性能(或多或少平时家用环境大部分都可以压缩),减少了写入放大,另外造成了实际数据占用颗粒空间变小,但报告给操作系统的还是那么大,“多”出来的颗粒容量可以全部做RAISE保证数据安全和OP空间做磨损平衡和GC,并且稳定态跑出来时会出现主控限速保证保内你始终写不坏。我觉得它相对其他主控最独特的压缩特性其实是为了照顾低端颗粒,使下游厂家使用低端闪存颗粒做SSD成为了可能性,而不绝对不是为了性能考虑。这样免费得来的主控“可操作”的这么多富裕颗粒空间,可以设想的事情太多了,用这个“节约”下来的空间可以通过利用各种方式完成很好的寿命保持逻辑。
6#
neeyuese 发表于 2011-10-28 14:12 | 只看该作者
你说的SF设计思想没有错,不过这个只是开发者设计的初衷,可惜“坏人们”不是这么想而已。

至于Marvell的优先级高低,这个取决于主控固件的设置,没有任何主控可以在保证GC的时候不影响性能,就像你再如何净化也无法跟上污染的速度一样。你所说的M4性能不下降是因为,它随时都在利用有限的时间做最优化的处理,这样导致如果不限速,主控功耗会大增,内部处理太复杂和频繁。
7#
jeffxl 发表于 2011-10-28 14:32 | 只看该作者
本帖最后由 jeffxl 于 2011-10-28 14:37 编辑

这里我想讨论一套GC策略:下面所说的OP空间全部指格式化容量对应颗粒容量的差额这一等级的OP空间(因为必定可用,操作不影响系统读写逻辑,操作系统无法”看到“它),大家都知道全盘清空指令会在很短的时间(1秒左右)可以把所有颗粒同时“强制GC”掉,不留任何数据。那么在正常使用当中可以不可以这样操作?比如,有始终利用OP空间,只要OP以外的物理颗粒空间剩下的干净块不多的时候,这时因为OP空间是隔离的,目前还有少部分OP外可用颗粒可以写(不能低于OP空间为门限),那么这时采取对实际OP空间对应的物理颗粒地址(这是操作系统逻辑地址里看不到的对不对?)做隔离性的只针对OP空间物理颗粒地址的同时擦除(从前面的全盘擦柱的特性得知主控是可以下发同步多颗粒擦除的指令)。此操作完成后立即通过FTL(系统逻辑地址和颗粒物理地址映射层)置换全部的OP空间到剩下的操作系统可访问的空余空间。这个时候有个问题,特别是没有TRIM时主控实际知道的非OP空闲空间并没有操作系统看到的多,就是无效块全部组织起来没有操作系统看到的空闲空间多的问题,那么可不可以通过类似FORCE TRIM的方法利用主控空闲资源预先组织操作系统的空闲空间对应的物理地址全部标记无效然后就可以对已经在OP空间里做了同步擦除的物理地址做FTL置换。这些操作逻辑会非常快速,比你写的时候做GC单线程擦除恢复要快得多,类似全盘擦除指令(因为是颗粒同步操作)。
      这里有几个逻辑问题需要避免:第一,如何在做这个操作时还能保证当前读写?因为我的设计里面是利用OP空间,目前操作系统看不到这个空间,是可以做这部分物理地址的擦除,主控完全知道这些地址是可以擦除的。第二,置换操作性能问题?准备在FTL里把脏页置换到OP去,把已经“全新”的颗粒置换出来让操作系统可写干净页,这个过程只是FTL层地址置换,需要的主控性能没有什么依赖,不大可能影响读写延迟,并且可以延迟操作,在不忙时完成。第三,已经脏了的页可能主控不知道无效如何等量置换?操作系统已经删了的文件在文件系统逻辑里已经不存在,而且页已经脏了,主控可能不知道是无效,那么如果主控目前知道的无效页大于等于OP空间就直接置换,如果不够置换就执行FORCE TRIM类似操作能搜集到全部无效页做置换,如果操作系统逻辑空间已经低于OP空间。那么只能在OP空间里做剩下操作系统剩余空间的等量置换,比如只有1G可用了,那如果主控能通过FORCE TRIM操作搜集并识别到这1G无效页,立即置换OP空间里1G干净空间。这里永远保持OP空间里面的里的页是干净的,随时置换脏页进来。这些操作比异步空闲GC效率要高得多。GC效率=OP空间大小颗粒的性能瞬间恢复,盘的总容量7%左右的恢复速率啊,这很恐怖,几乎写不掉性能
8#
liwenchao 发表于 2011-10-28 14:42 | 只看该作者
你说的SF设计思想没有错,不过这个只是开发者设计的初衷,可惜“坏人们”不是这么想而已。

至于Marvell的 ...
neeyuese 发表于 2011-10-28 14:12



    也就是说M4不限速,主控温度会很高?
9#
neeyuese 发表于 2011-10-28 14:43 | 只看该作者
1.全盘清空指令,很短的时间内是全盘颗粒擦除,而不是“GC”,所以速度快。因为那条指令等于让SSD忽略了基本所有的数据,完全可以不顾后果的擦除。(颗粒的擦除速度非常非常快)
2.“GC”消费的时间主要是颗粒内部“有效”数据的复制和写入,而不是擦除颗粒内容的那一瞬间。所以你的第一段就已经不成立。
10#
neeyuese 发表于 2011-10-28 14:46 | 只看该作者
也就是说M4不限速,主控温度会很高?
liwenchao 发表于 28/10/2011 16:42



是的,主控温度和功耗都不低,环境温度25度,主控满载可以有65~70度这样,放在笔记本里的话要考虑清楚了。
11#
jeffxl 发表于 2011-10-28 14:50 | 只看该作者
本帖最后由 jeffxl 于 2011-10-28 14:54 编辑
1.全盘清空指令,很短的时间内是全盘颗粒擦除,而不是“GC”,所以速度快。因为那条指令等于让SSD忽略了基 ...
neeyuese 发表于 2011-10-28 14:43



   所以我设计的是同步擦除OP空间,不需要顾虑数据,既然操作系统看不到(系统逻辑上指不到这个地址,物理上也是可操作地址),就不会拦截系统读写造成写入响应延时变太大(利用空闲通道操作)


可能有人要问为什么你不直接同步直接擦除已经脏了的页?因为你如果擦除系统能看到的部分,那么擦除操作在SSD里面是操作延时最大的,你必须要暂时拦截中断操作系统一段读写的时间,而我的设计是”全盘擦除“式的操作OP空间,暂时并不影响系统正常读写(利用空闲通道,其他通道响应系统写入),那么这时剩下的FTL置换操作是可以拦截一段时间的操作系统写,因为FTL一张数据表而已,改映射表的对应关系几乎是瞬间的(个位数的毫秒级),那么这样的逻辑就最大的减小对系统的影响并完成单次几乎7%空间的GC效率
12#
jeffxl 发表于 2011-10-28 14:54 | 只看该作者
我觉得目前这个方式的问题是全盘擦除指令的操作粒度是多少,是以颗粒为单位还是块,如果是块,那么就好操作了,如果是颗粒,那么还要花费整理代价
13#
jeffxl 发表于 2011-10-28 14:56 | 只看该作者
还有,美女怎么变猫了?变猫也要变个漂亮的猫啊?(我没有问不该问的问题吧。。。)
14#
jeffxl 发表于 2011-10-28 15:02 | 只看该作者
本帖最后由 jeffxl 于 2011-10-28 15:05 编辑

目前被主控算法置换到OP空间的页管它脏不脏都不需要GC的完整过程是不是?因为确定已经不需要GC过程中的复制和回写过程才会被收集和置换进OP里面,而且都已经不是系统逻辑地址了,难道不能做定向全盘擦除这个操作?操作粒度、粒度问题!!我想知道
    我的预想算法肯定是:确定完全可以不顾虑数据的物理可操作地址,这个地址有7%左右啊,为什么不能这样操作?同步擦除的粒度必须是整盘所有颗粒吗?
15#
neeyuese 发表于 2011-10-28 15:11 | 只看该作者
OP空间的页,并不是空白的,只不过是内部有空白的页而已,或者说GC效率更高的页而已。OP空间的地址是会动的,如何处理算是算法的一部分。擦除操作是以块为单位,不过很多情况下,块里的数据是零碎的,也是需要GC的,包含有效数据。
16#
jeffxl 发表于 2011-10-28 15:16 | 只看该作者
本帖最后由 jeffxl 于 2011-10-28 15:18 编辑

我知道OP对应FTL下面的物理颗粒地址是总在变,但某个瞬间(多长不知道)是恒定的(操作时间低于那个瞬间需要的时间是可以掩盖操作延迟的)我再想想。。。。

猫头上的圆像个盖子一样的是啥?看起来像个茶壶。。。
17#
promethium 发表于 2011-10-29 16:44 | 只看该作者
楼主,你的测试方法不够苛刻,所得结果是有欺骗性的,因为你虽然是在不分区情况下进行随机4K写入,但是你用CDM测试还是必须要分区,而且CDM测试时需要先进行顺序写入1G的文件进行准备工作,然后的顺序、随机读写都是在这个曾经被顺序写入1G的逻辑地址上进行的,要牢记这一点。M4的GC算法很激进,只要你有大块的顺序写入,它就可以把对应这一块逻辑地址上的数据存储顺序化,哪怕之前再随机也是这样,这样只有第一次顺序写入的时候需要做大量GC工作,之后就都不需要了。而CDM测试的第一次顺序写入恰恰是文件准备工作,这一阶段是不计时的,GC再多写入速度再慢你也看不出来,而后来的顺序测试又都恢复成接近满速了,这就是一种假象,而这种假象都是CDM、AS SSD这一类测试软件所无法克服的。要想得到此时的真正顺序写入速度,要么你在不分区完全随机写入一天之后,马上用不分区的hdtune一类软件进行顺序写入测试,要么你用iometer进行顺序写入测试,但设置成先用随机写入进行一天的预热。
18#
promethium 发表于 2011-10-29 16:54 | 只看该作者
本帖最后由 promethium 于 2011-10-29 16:56 编辑

上面表述有误,不是不分区,而是无分区,要找一个能在无分区情况下进行4k随机写入填充的软件,然后再用在无分区情况下进行顺序写入测试的软件,比如hdtune。

或者在xp下面测,在单分区下面用iometer填充,然后删除分区,此时没有trim,不会让ssd有回复性能的机会,然后再用hdtune测试。
19#
venom2012  楼主| 发表于 2011-10-30 20:00 | 只看该作者
上面表述有误,不是不分区,而是无分区,要找一个能在无分区情况下进行4k随机写入填充的软件,然后再用在无 ...
promethium 发表于 2011-10-29 16:54

谢谢指教,问一个小白的问题,TRIM、GC是只有在分区状态下才开始工作的,对吧?以我介绍的测试方法,如果开机,将SSD挂一段时间,是不是因为分区,因为TRIM与GC工作,SF SSD的速度就会恢复上?CRYSTAL的成绩又会好看呢?谢谢!
20#
neeyuese 发表于 2011-10-30 20:18 | 只看该作者
Trim确实需要分区才能做,但是GC是不需要的。
做Crystal测试前,软件都会生成一连串持续文件,这段文件就会把你的SSD里原本辛辛苦苦用IOMETER没分区跑出来的碎片给弄成持续了,所以你跑分速度会越来越好,因为越跑分,碎片越持续,就像做了碎片整理一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部