SSD还分随机和顺序IO吗

原文 http://blog.sina.com.cn/s/blog_69406f8d0102vcxz.html上周,有位朋友提出一个问题:“在 HDD 中,顺序 8KB 写和离散(随机) 8KB 写的 IOPS 差别大,这是因为磁盘机械的原因。那么在 SSD 里面,顺序 8KB 和离散 8KB 写 IOPS 也还会有差别吗?”
这是一个好问题。因为硬盘每一次随机访问,都需要消耗磁头寻道和盘片旋转等待这两部分时间;而 SSD 使用的是半导体闪存介质,随机访问要快得多。
我在《 Oracle Exadata X5弹性扩展与SSD性能计算 》一文中,经过推算得出“Oracle Exadata X5弹性扩展与SSD性能计算 Exadata 公布的 SQL 闪存写 IOPS 可以是顺序操作,所以会超过 IntelP3600 标称的 8KB 随机写 IOPS ”的判断。当时也确实有点拍脑袋,印象中看过这方面的测试数字,但却一时拿不出证据了。
最简单的办法,就是用实际测试再验证一遍,这时我已经做好推翻自己的准备:)

SSD 还分随机和顺序 IO 吗?

上图引用了 IDF 关于 SSD 的演示文稿,“不管顺序还是随机写入,都没有寻址时间,因为它们都是被顺序地写到 NAND 里面去的。”
SSD 还分随机和顺序 IO 吗?

这里的说明不只代表 Intel SSD ,所有以闪存为介质的固态盘都是如此,通过 FTL “将新数据写入新的物理地址,将原来的 LBA 地址标明无效并不可用”,让我想起了 NetApp WAFL 和 ZFS 文件系统。
以上是理论 基础 ,下面看看测试环境和测试结果。
测试环境
首先,我可没有 Exadata 那样高大上的东西,话说以我的 Oracle 水平也玩不动,现在拿给我玩也浪费了。
SSD 还分随机和顺序 IO 吗?

就拿自己用的 SL500 笔记本吧,正好系统盘已经换成 SSD ——被誉为渣渣的三星 840 EVO (TLC ),凑合着做个验证。
如上图,由于 C 盘上安装了操作系统,不能影响正经事儿,所以我在当初预留的 11GB 空间上创建了一个测试分区,并且用 Iometer 将其“填满”后开始测试。
这里说明 2 点:
1. 我测试的不是整盘,但 SSD 有 FTL 来实现磨损平衡,因此实际写入的 LBA 范围很可能比较大并在物理上不连续,可以像 WAFL/ZFS 文件系统那样永远写到新的位置。
2. 另外我是在 NTFS 文件系统上做的测试,与直接测试裸盘有些差别,每种文件系统 / 卷管理器通常都会有些缓存、元数据之类的,不过对本次测试影响不大。
SSD 还分随机和顺序 IO 吗?

操作系统是 Windows7 64 位, Iometer 软件版本 1.1.0-win64.x86_64 ,每次测试运行 2 分30 秒(我的 SSD 已经过一段时间的“老化”)。我们看到 C 盘里的数据也不少,如果是机械硬盘这样测试 Z 盘的话,只要没有(对 C 盘操作) I/O 争用就无所谓;而 SSD 则不同,整个盘的内充满数据的比例、以及碎片化程度都会影响到性能,特别是写入性能。
由于 SSD 的特点,不仅写入闪存页面速度没有读快,另外已经写入数据的页面(大小 4KB/8KB)需要经过块( 64KB 以上)擦除才能再次写入,也就是通常所说的垃圾回收( GC )过程。相比之下机械硬盘不存在这些问题。
测试结果及分析
SSD 还分随机和顺序 IO 吗?

SSD 随机 / 顺序写入性能对比(关闭写缓存)
为了避免写缓存的干扰,我首先在关闭写缓存的情况下运行了测试。根据以上图表,排除测试误差情况因素,差距确实比较小。 SSD 在队列深度为 1 时的 500 左右 IOPS ,也达到了我笔记本5400 转机械硬盘的 10 倍。
结论初步有了,但是接下来我又面临一个问题——之前对 Exadata X5 存储节点 SQL flash read/write IOPS 的简单分析如何解释?
*“ ExtremeFlash **全闪存节点为 377,000 **,这里是 SQL IOPS **已经考虑到 ASM **冗余带来的写惩罚,那么落到每个 SSD **(每节点 8 **个)上应该就是 94,250 **——好像这个数字明显超过了IntelP3600 **标称的 8KB **写 IOPS 33,000 *
*那么 HighCapacity **大容量混合存储节点的 192,000 **,落到 4 **块闪存卡上 96,000 **写 IOPS *也是类似的情况? ”
我们仍然以 Oracle 给出的最大性能指标是落在 SSD 上的真实 IOPS 为前提 ,如果顺序写不能比随机写更快的话,那这个数字是怎么测出来的?
有 Oracle 的朋友给出了回答: **F160 ****( NVMe SSD ****)的指标和 P3600 ****不完全一样,说用的是 eMLC ****, 8KB ****随机写入指标到 42000 ****”,“我们的卡不是标准产品,比标准的卡性能更好,寿命更长。” **
SSD 还分随机和顺序 IO 吗?

Oracle 给出的 F160 性能确实比上表中的 IntelP3600 高,但距离我计算之后期望的数值还相差比较多。至于 eMLC 和寿命之说,感觉 Intel 又有点玩了数字游戏——我曾经写过 P3600 没有像P3700 那样标明 High Endurance Technology (HET) 闪存,但新发布同样支持 5 年每天 3 次整盘写入, 1.6TB 型号最大写入数据量 10.7PB 的 S3610 (同容量的 P3600 为 8.76PB ),就标明了高耐久度 MLC 。
我们再看看还有啥提高性能的方法。
SSD 还分随机和顺序 IO 吗?

参考上图,不知 Smart Scan 能否 **8KB ****数据块整合成更大的 I/O **?如此则写入带宽将会增加。不过这违背了我们刚刚设定的前提。
增加队列深度对随机读改善比较明显,也就是发挥闪存的并发能力,其实看前面关闭写缓存情况下的 随机 / 顺序写测试也是如此。
SSD 还分随机和顺序 IO 吗?

上面的文字重新解释了“ 随机度 ”对性能的影响,理由是 顺序操作减少通道冲突,以及碎片回收的难度 。右边柱状图中的差距是在什么条件下测得的呢?
还有过量冗余—— Intel 等厂商早就说过“减少 LBA 的访问范围可以提升性能、耐久性和服务质量”。右边的折线图最右端为 100% 随机写,当 超量配置 ( OP )为 0% 时写 I/O 很容易触发垃圾回收;有了 20% 和 40% **空间冗余 **比例可以带来显著的写 IOPS 提升。
SSD 还分随机和顺序 IO 吗?

SSD 还分随机和顺序 IO 吗?

让我们再来看看 Intel 当年的 SSD 320 是公布了怎样的“作弊方法”——在 8GB LBA 范围内测试,并打开写缓存。其实消费级 SSD 公布的 IOPS ,有几家不是这样测的呢,甚至于 Fusion-io好像也这么干过。
那么 Exadata X5 是不是也可以预留闪存容量呢——没有说测试数据集一定要多大吧?可惜我的笔记本 SSD 太搓,在 11GB 分区内测试也没快到哪里去,不过可以打开写缓存试试看。
SSD 还分随机和顺序 IO 吗?

SSD 随机 / 顺序写入性能对比(打开写缓存)
如上图, 4 条不同颜色的实线表示 IOPS ,以左边的坐标轴为单位; 4 条对应颜色的虚线表示延时(单位毫秒),以右边的坐标轴位单位。从左到右的 4 个点,代表每项测试我都运行了 4 遍。我的 Excel 水平不高,大家凑合看看:)
首先,我在队列深度设为 1 的情况下对比了 8KB 随机写和顺序写,由于写缓存的因素,前 2 次测试的 IOPS 波动比较大,而到了第 3 次以后则趋于稳定并出现明显一些的差距。将队列深度改为32 之后,随机写 IOPS 并没有明显的改善。
至于队列深度 32 的 8KB 顺序写,只是拿来做个参考数字,毕竟我都是在有限的时间内运行测试。8KB 是 Oracle OLTP 应用的典型 IO 尺寸;对于批量插入和 redo log 这样的小数据块顺序写操作,我不确定多线程 / 进程能够发挥到什么程度。由于我在数据库方面并不专业,所以这里就不妄下判断了。
尝试给出一个结论: Intel 在资料中提到过随机度对 SSD 写入性能的影响(原因前面解释过了)。除了过量冗余能够提高写入性能之外,根据测试, **打开写缓存在一些情况下也可以改善****SSD 8KB ****顺序写 IOPS **(长时间测试效果有待验证)。
极限测试和 POC ****、读 IOPS ****如何
许多消费级 SSD 大胆使用 DRAM 写缓存来提高 IOPS 性能,我在《 SSD 缓存掉电保护: 3 种方案的利与弊 》一文中提到有的企业级 SSD 也这么做,但要用电容来做保护; 这样对性能的效果与控制器 /RAID 卡的写缓存,延时将数据持久化到硬盘 /SSD 的情况类似。
尽管可能会带来数据风险,但对于极限性能测试来说,快一些有什么不好呢?正如同行朋友所说,有多少 POC 会老老实实地使用 write-through 、 SYNC 这样的参数呢?
SSD 还分随机和顺序 IO 吗?

最后我还顺手做了个读测试,可以看到在并发足够(队列深度 32 )的情况下 8KB 随机读 IOPS能够达到甚至超过 8KB 顺序读,这时我的笔记本 CPU 占用率已达 80-90% (还有杀毒软件什么的,就算是个小小的生产环境吧),这个 SSD 可能还有潜力。
另一方面,如果队列深度只有 1 ,那么顺序读还是比随机读要快不少,我理解这是预读的效果。
本人的技术水平有限,欢迎大家批评指正!文中如有不够严谨的观点,权且当作给大家拓展思路

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • 简介 SSD(Solid State Drives),俗称固态硬盘,相对原来主轴旋转,并无机械部分,主要由SS...
    mysia阅读 4,983评论 0 10
  • 上个月,笔者对国内两大云厂商(阿里云和腾讯云)的云服务器、云数据库和云存储三种产品做了性能评测,算是对两家的部分计...
    EarlGrey阅读 1,618评论 2 7
  • 高并发平台架构 设计理念 1. 空间换时间 多级缓存,静态化前端页面缓存(HTTP Header中包含Expire...
    AkaTBS阅读 3,017评论 0 13
  • 姓名:郭金 学号:17101223407 转载自:https://www.cnblogs.com/LiJianB...
    宝宝啦啦啦阅读 2,732评论 0 2
  • 幼时一回到家,就看到妈妈窝在沙发里,手指飞快的发力,细如发丝的钢签听着妈妈的指挥一上一下,瞬间便是一朵盛开的白莲。...
    阿呆爱那个谁阅读 231评论 0 0