SSD的随机写一定很慢吗?

标签: ssd 随机 | 发表时间:2011-07-07 22:03 | 作者:风轻扬 crystal
出处:http://wangyuanzju.blog.163.com
对SSD一种常见的认识是随机读、顺序读、顺序写都很快,但随机写很慢。从很多目前公布的产品性能指标数据和测试结果看,确实如此。一般SSD小块随机读性能可以达到几万甚至过十万,但小块随机写性能则一般只有3-5千,相差一个数量级。

我认为这一认识不完全正确。SSD是一个很复杂的硬件,也还在不断改进,各代产品的性能表现往往有很大差异,针对不同的IO操作模式,SSD的性能表现可能有非常大的差异,它的性能表现决不能用“三快一慢”来简单的描述。要用好SSD,需要从原理上对SSD有深刻的理解,这样才能预计各种应用模式下SSD的性能表现,特别是才能预计出未来SSD的性能特征将走向何方。

SSD最基础的硬件是一堆可以并行操作的NAND Flash,之上的控制器提供了读写缓存、LBA到HBA的映射、wear-leveling、garbage collection等众多功能。控制器非常复杂,各个产商的实现也都不同,但基本上可以认为一个设计的还不错的SSD应该能够较好的发挥出底层NAND Flash的性能。如此,了解底层NAND Flash的性能特征非常重要。根据Wikipedia和《Design Tradeoffs for SSD Performance》论文的数据,NAND Flash的基本性能指标大致如下:
   4K Page read latency: 25us
   4K Page write latency: 200us
   256K Block erase latency: 1.5ms
相对于SSD产品升级换代带来的性能差异,基础NAND Flash的性能指标保持比较稳定。

根据这一基础硬件的性能指标作些简单计算。
  256K Block read latency: 1.6ms,单NAND颗粒读带宽:160MB/s
  256K Block write latency: 13ms,单NAND颗粒写带宽:20MB/s
  回收一个空的Block:1.5ms
  回收一个近满(50个有效页面)的Block:(25us + 200us) * 50 + 1.5ms = 13ms

据此可以对SSD的性能作出一些分析和预测。

首先,从基本的硬件指标来看,写性能只有读性能的1/8,但目前的SSD产品顺序写的性能不比顺序读要慢很多。无论是Intel X-25/320还是Fusion IO,顺序写性能仅仅只比顺序读低10-20%,而不是只有1/8。这个问题,再仔细看一下可以发现主要原因是SSD的带宽已经到了接口的限制。比如Intel 320系列,顺序读270MB/s,顺序写也有220MB/s,这主要是因为接这个SSD的SATA 3的带宽极限就只有375MB/s,再加上内存拷贝,200多MB/s其实已经接近整个硬件系统的极限了,SSD本身的读写性能再高也没用。但如果将来接口带宽大幅提高不成为瓶颈,则SSD顺序读写之间的性能差异就可能突显出来。

其次,无论是随机写还是顺序写,由于SSD都采用Copy on Write机制,最终对NAND Flash来说都是顺序写。那为什么经常随机写的性能要远差于顺序写?这里主要的差异在于页面的失效模式。随机写会导致随机的页面失效,顺序写会导致连续的大块页面失效。页面随机失效时,要回收block,需要将block中的有效页面读出并写到新位置,然后erase block,而连续的大块页面失效时,由于要erase的block中一般已没有有效页面,拷贝写到新位置的过程就没有了。

如果应用的IO访问有高峰和低谷,使得在低谷时可以完成垃圾回收的话,则erase的性能影响可不再考虑,此时随机写的吞吐率应该跟顺序写相当。反之,则erase对写性能的影响很大程度上取决于要回收的Block中的有效页面数。可以看到回收空Block和回收近满Block的用时相关很大。这可以解释为什么Intel SSD中用越多的Over Provisioning,随机写性能越高。Intel 320系列300G型,如果只用180G留120G用作Over Provisioning,则随机写IOPS就从用足300G的1400/s提高到6600/s。如果应用只用8G的话,则随机写IOPS更是可以高到23000/s。由此可见SSD随机写的性能并不一定很差,如果系统能在空闲时完成垃圾回收,或应用操作少量数据,则随机写性能应与随机读没有数量级上的差异。

不过从基础的理论数据计算,erase对性能的影响不应该像Intel 320系列那样有10多倍的影响,回收一个近满Block用时与写一个Block是差不多的,理论上应只会导致性能相差一半。这里有可能是因为Intel SSD的硬件内部IO并行不好,比如垃圾回收不能在所有NAND Flash上并行进行,或者控制器的算法还不够好。高端的硬件如Fusion IO,其随机写就不比随机读差。Intel还未发布的Ramsdale SSD的随机写IOPS也将过5万,我预计将来随着SSD技术的进步,其性能表现可能接近于基础NAND Flash的性能,随机写与顺序写之间的性能差异可能大幅缩减。

而未来的SSD,将可能更多的体现出基础硬件NAND Flash的性能特征,即:
1、无论顺序写还是随机写,其性能都远比顺序读或随机读差,可能接近一个数量级;
2、随机写性能与顺序写性能之间可能只存在2-3倍左右的差异。

有一些推测还有待实验来验证。对SSD这样的复杂硬件,分析和预测都很容易出错。有可能是我错了,也有可能是硬件设计错了,呵呵。

相关 [ssd 随机] 推荐:

SSD的随机写一定很慢吗?

- crystal - 风轻扬
对SSD一种常见的认识是随机读、顺序读、顺序写都很快,但随机写很慢. 从很多目前公布的产品性能指标数据和测试结果看,确实如此. 一般SSD小块随机读性能可以达到几万甚至过十万,但小块随机写性能则一般只有3-5千,相差一个数量级. SSD是一个很复杂的硬件,也还在不断改进,各代产品的性能表现往往有很大差异,针对不同的IO操作模式,SSD的性能表现可能有非常大的差异,它的性能表现决不能用“三快一慢”来简单的描述.

SSD 以及其它

- 我爱小老虎 - DBA Notes
在微博上说起了 SSD 和高端存储的话题. 在 SSD 出现之前,高端存储厂商很多年都在安稳的赚钱,尽管互相之间也有竞争,但单个设备动辄上百万,总有钱可赚. SSD + PC 服务器这个组合的出现终将革掉他们的命. EMC / HDS / IBM 这几家公司卖存储的朋友恐怕日子都比较难过. 据说苹果新的数据中心买了 EMC Isilon 的设备作为存储解决方案,12 PB 的存储(refer),不差钱的主总是有的.

干掉光驱、拥抱 SSD

- hama - apple4us
我几乎不用光驱,但它却占据了笔记本内相当大一部分空间(见图). 光驱用的是 SATA 接口,我决定把它拆出来,换上一块固态硬盘(后文称 SSD). 我垂涎 SSD 已久,但又有很多资料需要存储,在笔记本内保留一块大容量传统机械式硬盘(后文称 HDD)同时加装一块 SSD 做系统盘似乎是最完美的选择.

SSD 安装与优化

- - 操作系统 - ITeye博客
1.BIOS中打开ACHI,并且关闭兼容IDE,如果安装前忘记这个,可以安装后,改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci 的START值为0. 3.关闭休眠:cmd: powercfg -h off. 4.确认trim: cmd: fsutil behavior query DisableDeleteNotify,如果DisableDeleteNotify=1,更新主板程序一般能解决.

SSD FRESH – 一键快速优化 SSD 硬盘

- - 小众软件 - Appinn
SSD FRESH 是款专门优化 SSD 硬盘(Solid State Drive)的软件,可以延长 SSD 硬盘使用寿命以及部分性能. 青小蛙在体验过 SSD 的速度(普遍在500MB/s左右)后,就再也无法忍受普通硬盘(7200转硬盘内部传输速率约为 66MB/s)的龟速了(当然 SSD 的速度还取决于接口速度,比如 SATA2.0 只能达到 300MB/s,而 SATA3.0 则理论上可以 600MB/s).

KingMax带领SSD跨入TB时代

- ghx88 - cnBeta.COM
9月15日,国际知名存储大厂KINGMAX携业界首个1TB容量SSD固态硬盘高调亮相北京. 会场显著位置,落地海报一行排开,除了备受世人瞩目的大容量SSD之外,KINGMAX的其他存储设备也有着力宣传,包括了奈米冰神内存,高速高容量存储卡以及USB3.0极速U盘等等.

读写SSD的注意事项

- - 开源小站
在几次对SSD硬盘进行fio的测试之后,我们采用了与传统硬盘相似的做法:依次采用了512K,1K, 2K,4K直至2M大小的数据对一块NVMe 企业级SSD进行读写测试,测试它的延时,并在不同的主机/操作系统上做出了2组数据,最终,得到了下图. 纵坐标表示延时的时常,单位是ns;暖色调表示对磁盘读的测试结果,而冷色调则是代表对磁盘写的测试结果.

三星发布512GB 500MB/s的笔记本SSD

- 锟小胖 - cnBeta.COM
韩国三星周三公布了最新的SSD产品线,2.5英寸PM830型号带着512GB的最大容量来到市场,这款大容量高速SSD采用了最尖端的20nm制程闪存,256bit AES加密,DDR技术让性能方面可以带来500MB/s的读取速度和350MB/s的写入速度,支持SATA3.0接口,可用于台式机和笔记本.

关于《干掉光驱、拥抱 SSD》一文的补充

- BOLIWA - Apple4.us
这里集中回答一下大家关于《干掉光驱、拥抱 SSD》的主要疑问:. 理论上光驱不属于用户可以自行拆卸、更换的部件,所以可能会影响保修政策. 但由于光驱上并没有任何封条,可以先拆了,等需要保修的时候再把它装回去. 拆装过程中稍微注意一点其实看不出来任何区别. (当然,如果这样还是被看出来了因而拒保,请不要来找我……).

新串行ATA标准瞄准SSD和平板

- raincoatrun - Solidot
串行ATA标准管理机构SATA-IO宣布了两个新接口标准,其中一个还在开发之中,另一个已经完成. SATA 3.0的最大传输带宽是6Gb/s,新的SATA Express标准结合了SATA软件栈和PCI Express 3.0的传输速率,能提供最高16Gbps的带宽. 另一个uSSD标准则已经准备就绪,它的传输速率仍然保持6Gb/s,但抛售了传统的SATA连接器,可以允许SSD控制器直接焊到主板上,针对的是超轻薄笔记本和平板电脑.