淘宝海量数据库之克服随机IO难题
创始人
2024-07-30 17:41:28
0

磁盘随机 IO 性能常常是数据库性能的决定因素,即使是 15000RPM 的 SAS 盘,单盘也很难超过 300IOPS ,对于传统关系数据库,磁盘随机 IO 是个多年的老大难问题,目前尚无令人满意的解决方案,数据库如何抵抗随机IO的问题、方法与现实一文中提到了一些关于此问题进展。

与传统磁盘相比, SSD 固态盘提供了非常好的随机读性能,单盘可达 35000IOPS (4KB) 甚至更高,并提供 512MB/s 或以上的读出带宽。但通常 SSD 盘的随机写性能甚至比一般磁盘更差,这是因为,尽管 SSD 的读和写都以 4KB 页 (page) 为单位,但 SSD 写入前需要先擦除已有内容,而擦除以块 (block) 为单位,一个块 (block) 通常是 128 个连续的页 (page) ,即 512KB 。假如写入的页 (page) 内有内容,即使是写入一个字节, SSD 也需要把整个 128 页 (512KB) 内容先读到内存,与要写入的内容融合,擦除这 128 页所在的块 (block) ,然后再重新写入整个 512KB 数据,这就是 SSD 盘的写入放到效应。

“ SSD 的写入放大 - Write amplification ”

假设每次随机写入 1KB ,即便 SSD 能够提供 1K 次 / 秒的随机写入能力,根据上面的分析,对应的写入放大将把 SSD 的 512MB/s 的读出带宽全部消耗掉,也就是说,这种情况下, SSD 已经无法提供读服务。因此,在传统关系数据库中,普通 SSD 难以获得令人满意的性能。

淘宝海量数据库 OceanBase 采用与经典关系数据库不同的设计: OceanBase既 实现了增删改在内的跨行跨表写事务,又完全摒弃了随机写,除了操作日志 (commit log) 总是顺序追加写入到普通 SAS 盘上,剩下的写请求就是对响应时间要求不是很高的批量顺序写, SSD 盘完全可以轻松应对,而许多响应查询请求的随机读,更可以充分发挥 SSD 良好的随机读性能 。

从测试结果来看, OceanBase 在一台装有多块 SSD 盘的服务器上获得了数万 QPS 的查询性能 ( 大约是所有 SSD 盘的聚合 QPS 的 40% 左右,因此还有提升空间 ) ,这使得一台装备 SSD 盘的服务器可以提供 5-10 台同样配置但装备 15000RPM SAS 盘的服务器。尽管 SSD 盘大约是同样容量的 SAS 盘价格的 3~4 倍,在 OceanBase 数据库环境下,由于机器数量的大幅度减少,不仅机器采购成本降低了,机架、网络带宽等运维费用更是大幅度降低,总体成本也降低很多。

此外,由于 SSD 盘的功耗 ( 约 0.06W-3.5W) 明显低于 SAS 盘 (12W-15W , 3.5”) ,因此能源消耗的降低更多。

【编辑推荐】

  1. 数据库如何抵抗随机IO的问题、方法与现实
  2. 一步一步设计你的数据库之不可轻视的需求分析
  3. 养成一个SQL好习惯带来一笔大财富
  4. MySQL中创建及优化索引组织结构的思路

 

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...