`

SSD的随机写一定很慢吗?(zz)

 
阅读更多
from:http://wangyuanzju.blog.163.com/blog/static/1302920116781538766/

对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磁盘读写测试工具的主要用途是评估固态硬盘(SSD)的读写速度和随机I/O性能。这些工具可以提供用户友好的界面和各种测试模式,以评估硬盘驱动器性能的不同方面。具体来说,SSD磁盘读写测试工具的主要功能包括: ...

    SSD硬盘随机写入优化工具

    一款不错的SSD硬盘写入优化工具,可大幅度提升SSD硬盘写入速度,内附说明。

    固态硬盘测评报告(顺序读写和随机读写)

    ### 固态硬盘(SSD)测评报告:顺序读写与随机读写性能 #### 概述 本报告针对固态硬盘(SSD)的顺序读写和随机读写性能进行了全面评测,通过实验数据来深入分析不同品牌SSD的表现。顺序读写与随机读写是衡量SSD性能的...

    超级U盘SSD读写可靠性测试工具 v1.8.zip

    《超级U盘SSD读写可靠性测试工具 v1.8》是一款专为SSD固态硬盘和U盘设计的专业测试软件,旨在评估这些存储设备在实际应用中的读写性能及稳定性。这款工具对于用户了解其存储设备的质量,尤其是对那些需要频繁进行...

    SSD 固态硬盘测试读写性能软件AS SSD Benchmark

    测试完成后,会给出总分,这个分数综合了所有测试项目的性能表现,对于比较不同SSD的性能很有帮助。 除了基本的读写速度测试,AS SSD Benchmark还提供了一个名为“enchmark”的功能,可以让你自定义测试文件大小、...

    33 MySQL数据库的日志顺序读写以及数据文件随机读写的原理.pdf

    为了优化随机读写的性能,推荐使用固态硬盘(SSD)替代传统的机械硬盘,因为SSD的随机读写并发能力和响应延迟远优于机械硬盘。 在MySQL数据库中,为了减少磁盘随机读写的次数,通常会使用BufferPool缓存。Buffer...

    AS SSD Benchmark固态硬盘4k对齐 读写测试

    如果4K未对齐,SSD的读写性能会显著下降,可能导致系统响应变慢,文件传输速度降低等问题。AS SSD Benchmark提供了一个简便的方式来检测这一情况,同时它还能测试SSD的读写速度,这是衡量SSD性能的重要指标。 读写...

    AS_SSD_Benchmark.rar

    3. **64K随机读写速度**:64K随机读写测试在一定程度上介于顺序读写和4K随机读写之间,它反映了SSD在处理较大但又不连续的数据块时的性能。 4. **访问时间**:这是指SSD从接收到读写指令到完成操作所需的时间,通常...

    win7 ssd 优化

    目前的PC硬件日新月异,而主要瓶颈在于机械硬盘,受先天影响,机械硬盘随机读写能力很低。 SSD固态硬盘加快了随机读写的速度,可以使系统运行速度大大加快,但目前SSD价格太贵。 比较好的方案是用小容量的SSD作系统...

    存储/缓存技术中的这种TF变SSD的转换卡,靠谱吗?

    最近有童鞋给智趣狗留言,说家里有很多闲置的TF卡(也就是Micro SD卡),卖了不值钱,躺在抽屉里吃灰又太浪费。忽闻江湖传说有一种能拿多张TF卡做SSD的转接卡,于是小心肝就咚咚直响,这玩意儿不就是为咱们这种用户...

    AS SSD Benchmark汉化版

    AS SSD Benchmark是现在市面上最为常用的SSD评测软件,可以测试连续读写、4K对齐、4KB随机读写和响应时间的表现,并给出一个综合评分。同时AS SSD Benchmark还自带一个Compression Benchmark项目,它可以给出一个...

    SSD深入浅出之SSD测试

    3. Offset:通过设置测试的起始偏移地址,可以模拟从SSD中特定位置的读写操作,这对于测试SSD的读写性能以及映射表的准确性很有帮助。 4. 同步与异步:同步模式下,线程会等待当前读写操作完成才继续执行,而异步...

    SSD测速 as_ssd_benchmark

    该软件包含多个测试项目,如顺序读写、4K随机读写、64线程4K随机读写等,这些测试能模拟实际应用中的不同工作负载,帮助用户评估SSD在不同场景下的表现。例如,顺序读写速度直接影响大文件传输的速度,而4K随机读写...

    AS SSD Benchmark 1.6简体中文汉化版.rar

    是针对SSD的一款专门测试工具,能够进行持续读写和随机读写测试,并给出SSD的综合得分,除此之外它还附带模拟真实文件拷贝测试和可压缩数据测试组件,还可以查看SSD是否对齐,打开软件,选择要查看的分区,如果有...

    AM3359+SSD2828QN4(MIPI转换芯片)+小米3的屏 调试记录

    在本文中,我们将深入探讨一个基于AM3359处理器的系统如何与SSD2828QN4 MIPI转换芯片协同工作,以驱动小米3的屏幕进行显示调试。AM3359是一款由德州仪器(TI)制造的低功耗、高性能的ARM Cortex-A8微处理器,广泛...

    SSD测速软件AS SSD Benchmark 1.9.5986汉化版.rar

    能测试SSD的顺序读写速度、4K随机读写速度,进而得出SSD评分。数值越大代表你的SSD性能越高。主流SSD的读取速度在500MB/s左右,如果低于100MB/S,那说明SSD的性能差和机械硬盘差不多。此测试是 SSD 本机命令队列...

    AS_SSD_Benchmark

    AS_SSD_Benchmark是一款专为固态硬盘(SSD)设计的基准测试工具,它能够全面评估SSD的性能,包括读写速度、随机读写性能、4K对齐情况等多个关键指标。这款软件在IT行业中被广泛使用,帮助用户了解SSD的实际表现,为...

    SSD1322驱动.rar_OLED SSD1322_SSD1322 STM32_ssD1322程序_ssd1322_ssd13

    SSD1322是一款广泛应用于 OLED(有机发光二极管)显示屏的控制器,它能够高效地驱动像素显示。在嵌入式系统中,尤其是在基于STM32微控制器的平台上,SSD1322是实现图形化界面的理想选择。这个压缩包文件“SSD1322...

    SSD8所有答案

    压缩文件"ssd8"很可能包含了关于以上这些方面的题目和解答,帮助学习者或准备认证测试的人了解和掌握SSD的相关知识。答案可能涵盖理论解释、计算题、实验分析等多种形式,旨在全面测试对SSD原理、性能指标、应用实践...

Global site tag (gtag.js) - Google Analytics