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

 

       

                            

 

 

 

By David Lin

2013-06-13

Only those who dare to fail greatly can ever achieve greatly

 

posted @ 2013-06-16 13:42  爱生活,爱编程  阅读(273)  评论(0编辑  收藏  举报