我不是针对你啦,我是想要知道当时你是如何认为这些东西的。
两个512K的块,各有256K的已标记被删除的数据。TRIM会各清除掉512K的数据,再在这两个块各写入256K的数据;GC会各清除掉512K的数据,再在整盘某个高寿命的块上写入512K。明显gc这个过程非常有利于写入平衡。假如这个时候又有一个512K的数据要写入,SSD优先会考虑整个 512K都是空的块写入,因为如果分开写入,一旦这个数据被删除,就要改写多个块。TRIM过后的盘,半空的块多,全空的块少,明显这个时候写入,可供选择用来写入平衡的块少。GC过的盘,全空的块多,就可以挑寿命高的块写入。这个寿命高的块,在TRIM过程中可能是被半占用的,没法被利用到。GC的好处是把一些高寿命但没法利用的块腾出来了,但并没有加入写入放大。
INTEL限制写入完全是为了X25-E好定位,而非是基于寿命的考虑。
好比两辆车,跑50000KM就要坏,难道工厂会因为这样而限制汽车最高车速?
汽车跑多少公里那是固定的,人不会因为汽车限速就少跑路,该跑的还是要跑的。
而基于寿命的考虑就搞笑了,车子买回去不是24H都跑最高速的。
对于SSD,买回去24H跑满速写入的有多少?工厂自会调查,是很少一部分,出了问题也赔得起。在别的厂子提供高写入还保三年都能负责的起,INTEL因此而限速是不是太小气了?
用HDTUNE测IOPS是不正确的,HDTUNE的IOPS是用一秒除以单次操作延迟得出的,根本没考虑到高队列深度多工的情况。INTEL的用的是片内缓存,延迟小,一般用HDTUNE测得IOPS是1000/0.09=1.1W;其他的SSD用的是片外缓存,延迟高,一般测得的IOPS是1000 /0.13=7.5K。
但HDTUNE这种测试方式完全不适合SSD。好比两个人接受指令,一个人反映慢,但单位时间接受的指令多,另一个人反映快,但单位时间接受的指令少。叫反映慢的人做事,虽然单条指令回复的时间慢,但你可以不间断的给他指令,结果单位时间这个反映慢的人做的事还比反映快的人多。这就是NCQ的效果。
所以该怎么看IOPS,就是通过AS SSD 4K 64深度的值除以4K/S得出的。C300这个值是180MB/S,得出的IOPS就是45K,刨掉一些误差,是符合标称的。在美光论坛上,有人就有用 AMD原生6G口,跑出240MB/S的速度,换成IOPS就是60K,和广告单上数据是相同的。
C300这个盘在国外价格那是相当好呀,可惜到了国内性价比就不高了。内部GC完全废柴,anandtech在这盘上跑GC基本没看出效果。 marvell主控内部是两个ARM9,一个处理数据口,一个处理闪存口,性能相当强劲。可惜固件是美光开发的,0002才加入TRIM,研发能力真不/ 给/力。目前数据已经达到标称,很怀疑美光是否会继续改进固件。 |