1 / 38

大话 SSD

大话 SSD. 淘宝核心系统数据库组 褚霸 http://yufeng.info 2011/06/25. Agenda. 初见 相识 相知 相爱. 设备. IOPS. 接口. 7200 RPM SATA drives. ~90 IOPS. SATA II. 15k RPM SCSI drives. ~180 IOPS. SAS. Intel X25-M G2 (MLC). ~8,600 IOPS. SATA II. ioDrive, a PCI-Express card with Flash.

konane
Download Presentation

大话 SSD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 大话SSD 淘宝核心系统数据库组褚霸 http://yufeng.info 2011/06/25

  2. Agenda 初见 相识 相知 相爱

  3. 设备 IOPS 接口 7200 RPM SATA drives ~90 IOPS SATA II 15k RPM SCSI drives ~180 IOPS SAS Intel X25-M G2 (MLC) ~8,600 IOPS SATA II ioDrive, a PCI-Express card with Flash with Flash 140,000 Read IOPS, 135,000 Write IOPS  PCIe Fusion-io ioDrive Octal 1,180,000+ Random Read/Write IOPS PCIe 存储设备IOPS演变史

  4. 设备 价格/每GB SATA 7200转 0.1 USD SAS 10000转 0.4 USD Intel X25-M 160G * USD FusionIO  iodrive MLC 320G * USD Virident  tachion SLC 400G * USD 存储设备价格对照

  5. 淘宝使用案例 • CDN  • IC库 • TC主库 • TC读库 • Oceanbase • Vstore • 图像搜索 • Tair • ...

  6. Agenda 初见 相识 相知 相爱

  7. PCI-E/SATA接口

  8. Intel X25-M/SATA

  9. FusionIO iodrive/PCI-E

  10. Virident tachion/PCI-E

  11. SSD写入如何发生的呢?

  12. Generation SLC MLC eMLC 2x 100,000 2,500 3x 100,000 5,000 35,000 5x 100,000 10,000 背景知识1:Nand芯片擦写次数

  13. 背景知识2:写放大倍数 写放大倍数的定义:SSD物理写字节数/应用逻辑写字节数 放大倍数越大,说明: • 设备不够好 • 我们没用好 • 寿命杀手

  14. Intel X25/M Nand内部布局

  15. 数据如何写入SSD(1)

  16. 数据如何写入SSD(2)

  17. 数据如何写入SSD(3)

  18. 数据如何写入SSD(4)

  19. 垃圾收集导致IO性能下降

  20. Agenda 初见 相识 相知 相爱

  21. 适用环境 • 对IOPS要求高,离散读多。 • 离散写多。 • 需要低延迟。 • 作为后备内存。 • 作为L2 Cache 。

  22. 对程序员的影响 • SSD=/=磁盘,传统软件基于机械硬盘设计。 • IOPS不再是问题,如果利用好是问题。 • 离散读写非常快(3个数量级),顺序读写没优势。 • 读写延迟时间小。 • 读不消耗寿命,写消耗,越小的数据写越不合算。 • 同一个位置写,由于均衡算法的存在,不会磨损芯片的同一位置。 • 尽量合并写。

  23. 对程序员的影响(续) • SSD IO吞吐量1.XG/s,内存是4-6G/s, 可看作是更大的内存? • MMAP做后备内存,和jemalloc这样的内存分配器配合。 • 异步IO, 保证IO请求队列深度。 • 对SSD的特性进行算法优化。 • fsync能力是数据类应用天花板。

  24. 使用SSD通常要考虑的问题

  25. Agenda 初见 相识 相知 播种

  26. 选择 • 多线程和IOPS • 文件系统的选择 • IO块大小 • SLC还是MLC • 写放大倍数 • 数据安全性 • 驱动对应用的影响 • 抖动/延迟 • L2 Cache方案

  27. 离散读性能/线程数目

  28. 离散写性能/线程数目

  29. 文件系统的影响

  30. IO块大小的影响

  31. Nand: MLC还是SLC

  32. 写放大倍数和寿命 数据库典型的应用: Intel X25-M:   5-8倍 FusionIO iodrive: 2-3倍 可以透过ssd设备提供的监控程序(如smartctl)来获取这些参数 . 寿命: Intel X25-M: 200T FusionIo iodrive 320G: 4P

  33. 数据安全性 数据校验:  • ECC校验 • Raid冗余 • Intel X25-M支持硬件raid卡,FusionIO 只能做软raid 掉电保护: • 大电容保护 • 日志系统 数据恢复时间: • FusionIO最多10分钟左右(内部日志系统)

  34. 驱动对应用的影响 Sata接口:标准Linux驱动,驱动开销很小 PCI-E接口:每个厂家驱动不同,对CPU和内存的消耗可能会非常大。 FusionIO在峰值的时候可能会占用1-2G内存,最多1x0%CPU, Virident由于板载处理器CPU消耗比较小。 中断开销: • 中断多的时候是否可以考虑均衡

  35. 抖动和延迟 由于数据整理的不可避免性,抖动也是不可避免的。 Intel: 脏块回收做的不是很好,在使用过程中,数据写入多的情况下抖动会很厉害。 FusionIO: 相对好些,但是也会有轻微抖动。 可以通过加大reserve容量(通常默认20%)来大大缓解这个问题。 延迟时间可能会达到1ms.

  36. SSD作为L2Cache方案 好处: • 低成本,高性能 • 对应用透明 可选方案: • Facebook FlashCache • FusionIO DirectCache • 文件系统 存在问题: • 性能损失 • 单点故障 • 数据热点问题

  37. Agenda 初见 相识 相知 相爱

  38. 交流时间 谢谢大家! SSD未来会很快普及, 我们做好相爱的准备了吗?

More Related