? ? ?對數據庫瓶頸貢獻最大的、恐怕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
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
