MySQL 硬件加速:Flash 存储技术

对数据库瓶颈贡献最大的、恐怕I/O是当仁不让了、
市面上、网络上一抓一大把的调优理论、都是对I/O下手
然、随着硬件技术的飞速发展、I/O已经不再是数据库瓶颈的头号杀手
那些墨守成规的DBA们、是时候转变思路啦、醒醒哈、别睡着了


大家伙先看一下MySQL I/O 分析

① InnoDB redo&binlog

同步写入底层磁盘,顺序小IO
IO响应时间要求 <2ms

② 数据文件

数据文件写:异步IO,后台写,随机小IO
数据文件随机读:索引查询,单块读,随机小IO
数据文件顺序读:全表扫描,多块读,连续大IO
IO响应时间要求 <5ms

对I/O 响应要求还是比较苛刻的、也难怪早期硬件品质低下时瓶颈出自I/O

不过、别急、在存储方面、天空一声巨响、Flash闪亮登场、立马风靡IT界、血洗I/O


㈠ Flash 存储技术概况


① 类型

● NAND,NOR
● SLC,MLC


② 接口类型

● SATA
● SAS
● FC
● PCIE


③ 生产厂家

● Intel,Fusionio
● STEC,SandForce
● HUAWEI



㈡ 性能数据比拼


Flash

① IOPS:随机读10000-60000,随机写5000-60000
② Throughput: 连续读200M-600M,连续写200M-600M
③ Latency:30us


Disk

① IOPS:随机读 160,随机写 160
② Throughput : 连续读170M,连续写130M
③ Latency:6ms




㈢ Flash 存储原理


⑴ Flash 需要擦除

● 允许直接写入,不允许更新
● 更新 = 读取 + 写入 + 擦除
● 擦除代价大,延时2ms
● 写入单位与擦除单位、单位不一致
● 擦除次数有次数限制


⑵ Firmware的功能

● FTL:物理逻辑地址映射
● Reclamation:回收策略,异步擦除
● Wear leveling:均衡写磨损,提升寿命
● Reserved space:减小写入放大,提升写性能




㈣ Flash 技术的运用


⑴ Flash Disk

① 高IOPS,低容量
② 避免过多的页擦除和写放大
③ Flash不适合存放redo


⑵ Flash Cache

① Writeback & writethrough
② 加速读性能,适合网站型OLTP
③ 注意内存消耗




㈤ 数据库I/O调整

⑴ MySQL参数

innodb_flush_log_at_trx_commit
innodb_flush_method
innodb_io_capacity


⑵ 块设备,文件系统

Linux IO策略NOOP,CFQ,DEADLINE
/proc/sys/vm/swappiness
mount -o noatime,nodiratime,barrier=0


⑶ Raid卡缓存控制

BBWC开启

预读缓存,写缓存writeback


MySQL 硬件加速:Flash 存储技术MySQL 硬件加速:Flash 存储技术




By David Lin

2013-06-13

Only those who dare to fail greatly can ever achieve greatly